Compare commits

..

8 Commits

Author SHA1 Message Date
Gato bca776f118 chore: ajouter les fichiers .env.example et extraire les secrets hardcodés
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:54:17 +02:00
Gato 85350cfe86 feat: ajout du service olhar-api
Docker Compose calqué sur bonsai-api : PostgreSQL 16 + Spring Boot exposé
sur olhar.goutailler-olivier.com/api via Traefik, avec Watchtower activé.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 08:03:28 +02:00
Gato 2c420e3fce Update doc 2026-06-07 07:33:40 +02:00
Cédric Olivier c25996ea3a fix pb nom image 2026-06-06 23:43:53 +02:00
Gato 14e73f0850 feat: ajouter le projet Olhar accessible sur olhar.goutailler-olivier.com
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 23:07:12 +02:00
Gato cfbff8ecbe Update runner 2026-06-06 22:55:41 +02:00
Cédric Olivier 90bc7f6e35 Optimise Infra 2026-06-06 22:51:44 +02:00
Gato c1deba1b56 update runner 2026-06-06 21:40:59 +02:00
12 changed files with 149 additions and 12 deletions
+3
View File
@@ -0,0 +1,3 @@
traefik-letsencrypt/
.env
**/.env
+4
View File
@@ -0,0 +1,4 @@
# Mot de passe PostgreSQL partagé entre le container db et l'API Spring Boot.
# Copier ce fichier en .env et définir une valeur sécurisée avant de démarrer.
# cp .env.example .env
POSTGRES_PASSWORD=changeme
+9
View File
@@ -0,0 +1,9 @@
# Copier ce fichier en .env et renseigner les valeurs avant de démarrer.
# cp env.example .env
# Mot de passe PostgreSQL pour la base de données Gitea.
GITEA_POSTGRES_PASSWORD=changeme
# Token d'enregistrement du runner Gitea Actions.
# À récupérer dans Gitea : Site Administration > Actions > Runners > Create new runner
GITEA_RUNNER_REGISTRATION_TOKEN=your_runner_token_here
+7 -1
View File
@@ -7,7 +7,13 @@ docker compose -f gitea-compose.yml pull gitea
docker compose -f gitea-compose.yml up -d docker compose -f gitea-compose.yml up -d
docker exec gitea gitea --version docker exec gitea gitea --version
``` ```
Build le runner
```bash
docker compose up -d --build act_runner
```
Relancer le runner Relancer le runner
```bash ```bash
docker compose -f gitea-compose.yml restart act_runner docker compose restart act_runner
``` ```
+4 -4
View File
@@ -8,7 +8,7 @@ services:
environment: environment:
POSTGRES_DB: gitea POSTGRES_DB: gitea
POSTGRES_USER: gitea POSTGRES_USER: gitea
POSTGRES_PASSWORD: change_me POSTGRES_PASSWORD: ${GITEA_POSTGRES_PASSWORD}
TZ: Europe/Paris TZ: Europe/Paris
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
@@ -47,7 +47,7 @@ services:
GITEA__database__HOST: db:5432 GITEA__database__HOST: db:5432
GITEA__database__NAME: gitea GITEA__database__NAME: gitea
GITEA__database__USER: gitea GITEA__database__USER: gitea
GITEA__database__PASSWD: change_me GITEA__database__PASSWD: ${GITEA_POSTGRES_PASSWORD}
TZ: Europe/Paris TZ: Europe/Paris
volumes: volumes:
@@ -88,7 +88,7 @@ services:
- gitea - gitea
environment: environment:
GITEA_INSTANCE_URL: http://gitea:3000 GITEA_INSTANCE_URL: http://gitea:3000
GITEA_RUNNER_REGISTRATION_TOKEN: Rvi31evVGlyH8o1h2lw200uMjOJyCrBQJXLKQqJk GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN}
GITEA_RUNNER_NAME: docker-runner GITEA_RUNNER_NAME: docker-runner
GITEA_RUNNER_LABELS: ubuntu-latest:host GITEA_RUNNER_LABELS: ubuntu-latest:host
CONFIG_FILE: /config.yaml CONFIG_FILE: /config.yaml
@@ -96,7 +96,7 @@ services:
GITEA__actions__DEFAULT_ACTIONS_URL: http://gitea:3000 GITEA__actions__DEFAULT_ACTIONS_URL: http://gitea:3000
volumes: volumes:
- ~/Applications/data/gitea/runner_data:/data - ~/Applications/data/gitea/runner_data:/data
- ~/Applications/data/gitea/runner_data/config.yaml:/config.yaml - ./runner-config.yaml:/config.yaml:ro
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
networks: networks:
- gitea-net - gitea-net
+16
View File
@@ -0,0 +1,16 @@
log:
level: info
runner:
file: .runner
capacity: 2
timeout: 3h
insecure: false
fetch_timeout: 5s
fetch_interval: 2s
cache:
enabled: false
host:
workdir_parent:
+14
View File
@@ -0,0 +1,14 @@
# Copier ce fichier en .env et renseigner les valeurs avant de démarrer.
# cp env.example .env
# Mot de passe PostgreSQL partagé entre le container db et Nextcloud.
POSTGRES_PASSWORD=changeme
# Compte administrateur Nextcloud — créé uniquement au premier démarrage.
# Pour le modifier après initialisation, passer par l'interface d'administration.
NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=changeme
# Identifiants pgAdmin (interface web d'administration PostgreSQL).
PGADMIN_DEFAULT_EMAIL=admin@example.com
PGADMIN_DEFAULT_PASSWORD=changeme
+6 -6
View File
@@ -13,7 +13,7 @@ services:
environment: environment:
POSTGRES_DB: nextcloud POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: changeme POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
TZ: Europe/Paris TZ: Europe/Paris
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
@@ -36,10 +36,10 @@ services:
POSTGRES_HOST: db POSTGRES_HOST: db
POSTGRES_DB: nextcloud POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: changeme POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
NEXTCLOUD_ADMIN_USER: admin NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER}
NEXTCLOUD_ADMIN_PASSWORD: adminpass NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD}
NEXTCLOUD_TRUSTED_DOMAINS: cloud.goutailler-olivier.com NEXTCLOUD_TRUSTED_DOMAINS: cloud.goutailler-olivier.com
NEXTCLOUD_OVERWRITEHOST: cloud.goutailler-olivier.com NEXTCLOUD_OVERWRITEHOST: cloud.goutailler-olivier.com
@@ -77,8 +77,8 @@ services:
container_name: nextcloud-pgadmin container_name: nextcloud-pgadmin
restart: unless-stopped restart: unless-stopped
environment: environment:
PGADMIN_DEFAULT_EMAIL: admin@example.com PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: adminpass PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
PGADMIN_CONFIG_SERVER_MODE: 'False' PGADMIN_CONFIG_SERVER_MODE: 'False'
TZ: Europe/Paris TZ: Europe/Paris
volumes: volumes:
+4
View File
@@ -0,0 +1,4 @@
# Mot de passe PostgreSQL partagé entre le container db et l'API Spring Boot.
# Copier ce fichier en .env et définir une valeur sécurisée avant de démarrer.
# cp .env.example .env
POSTGRES_PASSWORD=changeme
+54
View File
@@ -0,0 +1,54 @@
name: olhar-api-stack
services:
db:
image: postgres:16-alpine
container_name: olhar-api-db
restart: unless-stopped
environment:
POSTGRES_DB: olhar
POSTGRES_USER: olhar
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
TZ: Europe/Paris
healthcheck:
test: ["CMD-SHELL", "pg_isready -U olhar -d olhar"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ~/Applications/data/olhar-api/db_data:/var/lib/postgresql/data
networks:
- olhar-api-net
api:
image: git.goutailler-olivier.com/gato/olhar-api:latest
container_name: olhar-api
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
DATASOURCE_URL: jdbc:postgresql://db:5432/olhar
DATASOURCE_USERNAME: olhar
DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
KEYCLOAK_JWKS_URI: https://auth.goutailler-olivier.com/realms/olhar/protocol/openid-connect/certs
CORS_ALLOWED_ORIGIN_PROD: https://olhar.goutailler-olivier.com
TZ: Europe/Paris
networks:
- olhar-api-net
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.olhar-api.rule=Host(`olhar.goutailler-olivier.com`) && PathPrefix(`/api`)
- traefik.http.routers.olhar-api.entrypoints=websecure
- traefik.http.routers.olhar-api.tls.certresolver=le
- traefik.http.services.olhar-api.loadbalancer.server.port=8080
- traefik.docker.network=proxy
- com.centurylinklabs.watchtower.enable=true
networks:
olhar-api-net:
driver: bridge
proxy:
external: true
name: proxy
+27
View File
@@ -0,0 +1,27 @@
name: olhar
services:
oalhar:
image: git.goutailler-olivier.com/gato/olhar-pwa:latest
container_name: olhar
restart: unless-stopped
environment:
TZ: Europe/Paris
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.olhar.rule=Host(`olhar.goutailler-olivier.com`)
- traefik.http.routers.olhar.entrypoints=websecure
- traefik.http.routers.olhar.tls.certresolver=le
- traefik.http.services.olhar.loadbalancer.server.port=80
- traefik.docker.network=proxy
- com.centurylinklabs.watchtower.enable=true
networks:
proxy:
external: true
name: proxy
+1 -1
View File
@@ -9,7 +9,7 @@ services:
TZ: Europe/Paris TZ: Europe/Paris
volumes: volumes:
- /home/gato/Applications/Trilium/data:/home/node/trilium-data - ~/Applications/data/trilium:/home/node/trilium-data
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro