diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..5271314 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,17 @@ +name: Deploy to production + +on: + workflow_dispatch: + +jobs: + deploy: + runs_on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Ansible + run: apt-get update && apt-get install -y ansible + + - name: Deploy Caddy config + run: ansible-playbook -i ansible/hosts.ini ansible/deploy-caddy.yml --vault-password-file <(echo "${{ secrets.ANSIBLE_VAULT_PASSWORD }}") diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..1d37e2a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,27 @@ +# Licence Propriétaire + +Copyright (c) 2026 E-Cosplay. Tous droits réservés. + +## Conditions + +Ce logiciel et son code source sont la propriété exclusive de E-Cosplay. + +**Il est strictement interdit de :** + +- Copier, reproduire ou dupliquer tout ou partie du code source +- Modifier, adapter ou créer des œuvres dérivées +- Distribuer, publier ou partager le code source sous quelque forme que ce soit +- Utiliser le code source à des fins commerciales ou non commerciales sans autorisation écrite +- Sous-licencier, vendre ou transférer le code source à des tiers + +## Accès au code + +L'accès au code source est strictement réservé aux membres autorisés de l'organisation E-Cosplay dans le cadre de leurs fonctions. + +## Responsabilité + +CE LOGICIEL EST FOURNI "EN L'ÉTAT", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE. + +## Contact + +Pour toute demande d'autorisation : contact@e-cosplay.fr diff --git a/Makefile b/Makefile index 7addc73..861a924 100644 --- a/Makefile +++ b/Makefile @@ -25,3 +25,23 @@ purge_dev: ## Arrete et purge les containers dev (volumes inclus) stop_prod: ## Arrete les containers prod docker compose -f docker-compose-prod.yml down + +## —— Install —————————————————————————————————————— +install_dev: ## Install les dependances dev via Docker + docker compose -f docker-compose-dev.yml exec php composer install + docker compose -f docker-compose-dev.yml exec bun bun install + +install_prod: ## Install les dependances et build les assets pour la prod + composer install --no-dev --optimize-autoloader + bun install + bun run build + +## —— Database —————————————————————————————————————— +migration_dev: ## Genere une migration via Docker dev + docker compose -f docker-compose-dev.yml exec php php bin/console make:migration + +migrate_dev: ## Execute les migrations via Docker dev + docker compose -f docker-compose-dev.yml exec php php bin/console doctrine:migrations:migrate --no-interaction + +migrate_prod: ## Execute les migrations en prod via Docker + docker compose -f docker-compose-prod.yml exec php php bin/console doctrine:migrations:migrate --no-interaction --env=prod diff --git a/ansible/caddy.j2 b/ansible/caddy.j2 new file mode 100644 index 0000000..ff18c44 --- /dev/null +++ b/ansible/caddy.j2 @@ -0,0 +1,32 @@ +ticket.e-cosplay.fr { + tls { + dns cloudflare {{ cloudflare_api_token }} + } + + @maintenance file /var/www/e-ticket/public/.update + handle @maintenance { + root * /var/www/e-ticket/public + rewrite * /maintenance.html + file_server { + status 503 + } + } + + handle { + reverse_proxy localhost:9000 localhost:9001 { + lb_policy round_robin + health_uri / + health_interval 10s + } + } + + encode gzip + + header { + -Server + } + + log { + output file /var/log/caddy/ticket.e-cosplay.fr.log + } +} diff --git a/ansible/deploy-caddy.yml b/ansible/deploy-caddy.yml new file mode 100644 index 0000000..6f45733 --- /dev/null +++ b/ansible/deploy-caddy.yml @@ -0,0 +1,30 @@ +--- +- name: Deploy Caddy config for e-ticket + hosts: production + become: true + vars_files: + - vault.yml + + tasks: + - name: Ensure Caddy sites directory exists + file: + path: /etc/caddy/sites + state: directory + owner: root + group: root + mode: "0755" + + - name: Deploy Caddy config + template: + src: caddy.j2 + dest: /etc/caddy/sites/e-ticket.conf + owner: root + group: root + mode: "0644" + notify: Reload Caddy + + handlers: + - name: Reload Caddy + systemd: + name: caddy + state: reloaded diff --git a/ansible/vault.yml b/ansible/vault.yml new file mode 100644 index 0000000..7e55328 --- /dev/null +++ b/ansible/vault.yml @@ -0,0 +1,8 @@ +$ANSIBLE_VAULT;1.1;AES256 +34376230633964343735383363613430386439326535303762646264333330383166636539643439 +3663303564386133313965343530383761353837626632390a323831366566356234626166646234 +64316232613836376264363237346433393931623863653562656164346534663666373364626130 +3833346535373064660a336234373730383438373233623231363335323162326666346136326162 +65303265386365656164323838666239303639333534626264333962386631323531656262633363 +64333734326466356236633061663933663962646165313935633361356339326366613731613765 +383336626531663034666532636363306130 diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index 3a3ed6c..b13cdbf 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -72,6 +72,17 @@ services: redis: condition: service_healthy + bun: + image: oven/bun:alpine + container_name: e-ticket_bun + working_dir: /app + volumes: + - .:/app + - bun-modules:/app/node_modules + command: sh -c "bun install && bun run dev" + ports: + - "5173:5173" + mailpit: image: axllent/mailpit container_name: e-ticket_mailpit @@ -91,3 +102,4 @@ services: volumes: db-data: redis-data: + bun-modules: diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index c9894f3..1816d79 100644 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -72,8 +72,6 @@ services: volumes: - ./docker/pgsql/pgbouncer.ini:/etc/pgbouncer/pgbouncer.ini - ./docker/pgsql/userlist.txt:/etc/pgbouncer/userlist.txt - ports: - - "6432:6432" depends_on: db-master: condition: service_healthy diff --git a/public/maintenance.html b/public/maintenance.html new file mode 100644 index 0000000..6835831 --- /dev/null +++ b/public/maintenance.html @@ -0,0 +1,93 @@ + + + + + + Maintenance - E-Ticket + + + + +
+ +
+
+ E-Cosplay +
+
+ + +
+ +
+
+ +

+ Maintenance en cours +

+
+
+ + +
+

+ Notre site est en cours de mise a jour. +

+ +
+ + + + + + Nous revenons tres vite + +
+ +

+ Merci de votre patience ! +

+
+ + +
+

+ contact@e-cosplay.fr +

+
+
+
+ +