diff --git a/.DS_Store b/.DS_Store index 77e4b16..59ac4cf 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml new file mode 100644 index 0000000..b6dce0b --- /dev/null +++ b/immich/docker-compose.yml @@ -0,0 +1,96 @@ +services: + immich-server: + image: ghcr.io/immich-app/immich-server:release + container_name: ${CONTAINER_NAME:-immich-server} + restart: ${RESTART_POLICY} + volumes: + - type: bind + source: ${UPLOAD_LOCATION} + target: /usr/src/app/upload + bind: + create_host_path: true + - /etc/localtime:/etc/localtime:ro + environment: + - DB_HOSTNAME=immich-db + - DB_USERNAME=${DB_USERNAME:-immich} + - DB_PASSWORD=${DB_PASSWORD} + - DB_DATABASE_NAME=${DB_DATABASE_NAME:-immich} + - REDIS_HOSTNAME=immich-redis + networks: + - traefik + - immich-internal + labels: + - "traefik.enable=true" + - "traefik.http.routers.${ROUTER_NAME}.entrypoints=websecure" + - "traefik.http.routers.${ROUTER_NAME}.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" + - "traefik.http.routers.${ROUTER_NAME}.tls=true" + - "traefik.http.routers.${ROUTER_NAME}.tls.certresolver=${CERTIFICATE_RESOLVER}" + - "traefik.http.services.${ROUTER_NAME}.loadbalancer.server.port=2283" + - "traefik.docker.network=${TRAEFIK_NETWORK}" + depends_on: + - immich-redis + - immich-db + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + + immich-machine-learning: + image: ghcr.io/immich-app/immich-machine-learning:release + container_name: ${ML_CONTAINER_NAME:-immich-machine-learning} + restart: ${RESTART_POLICY} + volumes: + - type: bind + source: ${MODEL_CACHE_LOCATION} + target: /cache + bind: + create_host_path: true + networks: + - immich-internal + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + + immich-redis: + image: valkey/valkey:8-alpine + container_name: ${REDIS_CONTAINER_NAME:-immich-redis} + restart: ${RESTART_POLICY} + networks: + - immich-internal + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + + immich-db: + image: pgvector/pgvector:pg16 + container_name: ${DB_CONTAINER_NAME:-immich-db} + restart: ${RESTART_POLICY} + environment: + - POSTGRES_USER=${DB_USERNAME:-immich} + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=${DB_DATABASE_NAME:-immich} + - POSTGRES_INITDB_ARGS=--data-checksums + volumes: + - type: bind + source: ${DB_DATA_PATH} + target: /var/lib/postgresql/data + bind: + create_host_path: true + networks: + - immich-internal + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + +networks: + traefik: + external: true + immich-internal: + internal: true \ No newline at end of file diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..e69de29 diff --git a/sparkyFitness/docker-compose.yml b/sparkyFitness/docker-compose.yml deleted file mode 100644 index e1c5ed4..0000000 --- a/sparkyFitness/docker-compose.yml +++ /dev/null @@ -1,110 +0,0 @@ -services: - sparkyfitness-db: - image: postgres:18.3-alpine - container_name: ${CONTAINER_NAME}-db - restart: ${RESTART_POLICY} - environment: - POSTGRES_DB: ${SPARKY_FITNESS_DB_NAME} - POSTGRES_USER: ${SPARKY_FITNESS_DB_USER} - POSTGRES_PASSWORD: ${SPARKY_FITNESS_DB_PASSWORD} - PUID: 1000 - GUID: 1000 - volumes: - - type: bind - source: ${DB_PATH:-./postgresql} - target: /var/lib/postgresql - bind: - create_host_path: true - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" - networks: - - sparkyfitness-network - - sparkyfitness-server: - image: codewithcj/sparkyfitness_server:latest - environment: - SPARKY_FITNESS_LOG_LEVEL: ${SPARKY_FITNESS_LOG_LEVEL} - ALLOW_PRIVATE_NETWORK_CORS: ${ALLOW_PRIVATE_NETWORK_CORS:-false} - SPARKY_FITNESS_EXTRA_TRUSTED_ORIGINS: ${SPARKY_FITNESS_EXTRA_TRUSTED_ORIGINS} - SPARKY_FITNESS_PUBLIC_API_DOCS: ${SPARKY_FITNESS_PUBLIC_API_DOCS:-false} - SPARKY_FITNESS_DB_USER: ${SPARKY_FITNESS_DB_USER:-sparky} - SPARKY_FITNESS_DB_HOST: ${SPARKY_FITNESS_DB_HOST:-sparkyfitness-db} - SPARKY_FITNESS_DB_NAME: ${SPARKY_FITNESS_DB_NAME} - SPARKY_FITNESS_DB_PASSWORD: ${SPARKY_FITNESS_DB_PASSWORD} - SPARKY_FITNESS_APP_DB_USER: ${SPARKY_FITNESS_APP_DB_USER:-sparkyapp} - SPARKY_FITNESS_APP_DB_PASSWORD: ${SPARKY_FITNESS_APP_DB_PASSWORD} - SPARKY_FITNESS_DB_PORT: 5432 - SPARKY_FITNESS_API_ENCRYPTION_KEY: ${SPARKY_FITNESS_API_ENCRYPTION_KEY} - BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET} - SPARKY_FITNESS_FRONTEND_URL: ${SPARKY_FITNESS_FRONTEND_URL:-http://0.0.0.0} - SPARKY_FITNESS_DISABLE_SIGNUP: ${SPARKY_FITNESS_DISABLE_SIGNUP} - SPARKY_FITNESS_ADMIN_EMAIL: ${SPARKY_FITNESS_ADMIN_EMAIL} - SPARKY_FITNESS_EMAIL_HOST: ${SPARKY_FITNESS_EMAIL_HOST} - SPARKY_FITNESS_EMAIL_PORT: ${SPARKY_FITNESS_EMAIL_PORT} - SPARKY_FITNESS_EMAIL_SECURE: ${SPARKY_FITNESS_EMAIL_SECURE} - SPARKY_FITNESS_EMAIL_USER: ${SPARKY_FITNESS_EMAIL_USER} - SPARKY_FITNESS_EMAIL_PASS: ${SPARKY_FITNESS_EMAIL_PASS} - SPARKY_FITNESS_EMAIL_FROM: ${SPARKY_FITNESS_EMAIL_FROM} - GARMIN_MICROSERVICE_URL: http://sparkyfitness-garmin:8000 - HTTP_PROXY: ${HTTP_PROXY:-} - HTTPS_PROXY: ${HTTPS_PROXY:-} - NO_PROXY: ${NO_PROXY:-} - PUID: 1000 - GUID: 1000 - networks: - - sparkyfitness-network - restart: always - depends_on: - - sparkyfitness-db - volumes: - - type: bind - source: ${SERVER_BACKUP_PATH:-./backup} - target: /app/SparkyFitnessServer/backup - bind: - create_host_path: true - - type: bind - source: ${SERVER_UPLOADS_PATH:-./uploads} - target: /app/SparkyFitnessServer/uploads - bind: - create_host_path: true - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" - - sparkyfitness-frontend: - image: codewithcj/sparkyfitness:latest - environment: - SPARKY_FITNESS_FRONTEND_URL: ${SPARKY_FITNESS_FRONTEND_URL} - SPARKY_FITNESS_SERVER_HOST: ${CONTAINER_NAME}-server - SPARKY_FITNESS_SERVER_PORT: 3010 - PUID: 1000 - GUID: 1000 - networks: - - sparkyfitness-network - - traefik - restart: ${RESTART_POLICY} - depends_on: - - sparkyfitness-server - labels: - - "traefik.enable=true" - - "traefik.http.routers.${ROUTER_NAME}.entrypoints=websecure" - - "traefik.http.routers.${ROUTER_NAME}.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" - - "traefik.http.routers.${ROUTER_NAME}.tls=true" - - "traefik.http.routers.${ROUTER_NAME}.tls.certresolver=${CERTIFICATE_RESOLVER}" - - "traefik.http.services.${ROUTER_NAME}.loadbalancer.server.port=${CONTAINER_PORT}" - - "traefik.docker.network=${TRAEFIK_NETWORK}" - - - "traefik.http.routers.${ROUTER_NAME}.middlewares=sparkyfitness-headers" - - "traefik.http.middlewares.${ROUTER_NAME}-headers.headers.customrequestheaders.X-Forwarded-Proto=https" - - "traefik.http.middlewares.${ROUTER_NAME}-headers.headers.customrequestheaders.X-Forwarded-Host=fitness.bybenji.de" - -networks: - sparkyfitness-network: - driver: bridge - traefik: - external: true diff --git a/sure/docker-compose.yml b/sure/docker-compose.yml deleted file mode 100644 index efcf1fd..0000000 --- a/sure/docker-compose.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: sure -networks: - traefik: - name: traefik - external: true - internal_net: - name: sure_internal_net - driver: bridge - -services: - sure-db: - image: postgres:16-alpine - container_name: ${CONTAINER_NAME}-db - restart: ${RESTART_POLICY} - environment: - - POSTGRES_DB=${DB_DATABASE} - - POSTGRES_PASSWORD=${DB_PASSWORD} - - POSTGRES_USER=${DB_USER} - volumes: - - type: bind - source: ${DB_PATH} - target: /var/lib/postgresql/data - bind: - create_host_path: true - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" - networks: - - internal_net - cpu_shares: 90 - deploy: - resources: - limits: - memory: 15841M - - sure-redis: - image: redis:7-alpine - container_name: ${CONTAINER_NAME}-redis - restart: ${RESTART_POLICY} - volumes: - - type: bind - source: ${REDIS_PATH} - target: /data - bind: - create_host_path: true - networks: - - internal_net - cpu_shares: 90 - deploy: - resources: - limits: - memory: 15841M - - web: - image: ghcr.io/we-promise/sure:stable - container_name: ${CONTAINER_NAME}-web - restart: ${RESTART_POLICY} - depends_on: - sure-db: - condition: service_started - sure-redis: - condition: service_started - environment: - - SELF_HOSTED=${SELF_HOSTED} - - ALLOW_REGISTRATION=${ALLOW_REGISTRATION} - - SECRET_KEY_BASE=${SECRET_KEY_BASE} - - RAILS_ASSUME_SSL=${RAILS_ASSUME_SSL} - - RAILS_FORCE_SSL=${RAILS_FORCE_SSL} - - DB_HOST=sure-db - - POSTGRES_DB=${DB_DATABASE} - - POSTGRES_USER=${DB_USER} - - POSTGRES_PASSWORD=${DB_PASSWORD} - - REDIS_URL=${REDIS_URL} - volumes: - - type: bind - source: ${STORAGE_PATH} - target: /rails/storage - bind: - create_host_path: true - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" - networks: - - traefik - - internal_net - cpu_shares: 90 - deploy: - resources: - limits: - memory: 15841M - labels: - - "traefik.enable=true" - - "traefik.http.routers.${ROUTER_NAME}.entrypoints=websecure" - - "traefik.http.routers.${ROUTER_NAME}.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" - - "traefik.http.routers.${ROUTER_NAME}.tls=true" - - "traefik.http.routers.${ROUTER_NAME}.tls.certresolver=${CERTIFICATE_RESOLVER}" - - "traefik.http.services.${ROUTER_NAME}.loadbalancer.server.port=${CONTAINER_PORT}" - - "traefik.docker.network=${TRAEFIK_NETWORK}" - - worker: - image: ghcr.io/we-promise/sure:stable - container_name: ${CONTAINER_NAME}-worker - restart: ${RESTART_POLICY} - command: - - /rails/bin/docker-entrypoint - - ./bin/bundle - - exec - - sidekiq - depends_on: - sure-db: - condition: service_started - sure-redis: - condition: service_started - environment: - - APP_URL=https://${SUBDOMAIN}.${DOMAIN} - - DB_HOST=sure-db - - POSTGRES_DB=${DB_DATABASE} - - POSTGRES_USER=${DB_USER} - - POSTGRES_PASSWORD=${DB_PASSWORD} - - REDIS_URL=${REDIS_URL} - - SECRET_KEY_BASE=${SECRET_KEY_BASE} - volumes: - - type: bind - source: ${STORAGE_PATH} - target: /rails/storage - bind: - create_host_path: true - - type: bind - source: ${BANKING_PATH} - target: /rails/config/enable_banking.pem - read_only: true - bind: - create_host_path: true - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" - networks: - - internal_net - cpu_shares: 90 - deploy: - resources: - limits: - memory: 15841M \ No newline at end of file