diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 5df4915..ddb30d3 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -1,11 +1,11 @@ services: - picsur: + asciinema: build: - context: ./docker/picsur/ + context: ./docker/asciinema/ dockerfile: Dockerfile.production - image: git.nixc.us/nixius/picsur:production-picsur + image: git.nixc.us/nixius/asciinema:production-asciinema postgres: build: context: ./docker/postgres/ dockerfile: Dockerfile.production - image: git.nixc.us/nixius/picsur:production-postgres \ No newline at end of file + image: git.nixc.us/nixius/asciinema:production-postgres \ No newline at end of file diff --git a/docker-compose.staging.yml b/docker-compose.staging.yml index 2746f7c..21ecd3e 100644 --- a/docker-compose.staging.yml +++ b/docker-compose.staging.yml @@ -1,11 +1,11 @@ services: - picsur: + asciinema: build: - context: ./docker/picsur/ - dockerfile: Dockerfile - image: git.nixc.us/nixius/picsur:staging-picsur + context: ./docker/asciinema/ + dockerfile: Dockerfile.staging + image: git.nixc.us/nixius/asciinema:staging-asciinema postgres: build: context: ./docker/postgres/ - dockerfile: Dockerfile - image: git.nixc.us/nixius/picsur:staging-postgres \ No newline at end of file + dockerfile: Dockerfile.staging + image: git.nixc.us/nixius/asciinema:staging-postgres \ No newline at end of file diff --git a/docker/picsur/Dockerfile b/docker/asciinema/Dockerfile similarity index 100% rename from docker/picsur/Dockerfile rename to docker/asciinema/Dockerfile diff --git a/docker/asciinema/Dockerfile.production b/docker/asciinema/Dockerfile.production new file mode 100644 index 0000000..e7625a5 --- /dev/null +++ b/docker/asciinema/Dockerfile.production @@ -0,0 +1 @@ +FROM git.nixc.us/nixius/asciinema:staging-asciinema \ No newline at end of file diff --git a/docker/picsur/Dockerfile.production b/docker/picsur/Dockerfile.production deleted file mode 100644 index de9a064..0000000 --- a/docker/picsur/Dockerfile.production +++ /dev/null @@ -1 +0,0 @@ -FROM git.nixc.us/nixius/picsur:staging-picsur \ No newline at end of file diff --git a/docker/postgres/Dockerfile b/docker/postgres/Dockerfile index 73bc72b..10ed255 100644 --- a/docker/postgres/Dockerfile +++ b/docker/postgres/Dockerfile @@ -1 +1 @@ -FROM postgres:14-alpine \ No newline at end of file +FROM docker.io/library/postgres:14-alpine \ No newline at end of file diff --git a/docker/postgres/Dockerfile.production b/docker/postgres/Dockerfile.production index 43b3d17..9f0b809 100644 --- a/docker/postgres/Dockerfile.production +++ b/docker/postgres/Dockerfile.production @@ -1 +1 @@ -FROM git.nixc.us/nixius/picsur:staging-postgres \ No newline at end of file +FROM git.nixc.us/nixius/asciinema:staging-postgres \ No newline at end of file diff --git a/stack.production.yml b/stack.production.yml index d57fa2c..6dd1685 100644 --- a/stack.production.yml +++ b/stack.production.yml @@ -1,58 +1,35 @@ -version: "3.7" - -x-environment: &default-environment - environment: - POSTGRES_DB: picsur - POSTGRES_PASSWORD: picsur - POSTGRES_USER: picsur - # PICSUR_HOST: '0.0.0.0' - # PICSUR_PORT: 8080 - PICSUR_DB_HOST: picsur_postgres - PICSUR_DB_PORT: 5432 - PICSUR_DB_USERNAME: picsur - PICSUR_DB_PASSWORD: picsur - PICSUR_DB_DATABASE: picsur - ## The default username is admin, this is not modifyable - PICSUR_ADMIN_PASSWORD: Jc4SfnnvBD9w3E4w6si8FnreQ8zoUxRco - ## Optional, random secret will be generated if not set - PICSUR_JWT_SECRET: lkBNe0tKsHxfAUh6CzyAWOxkl5AMsG/jFCG/o93yocU= - PICSUR_JWT_EXPIRY: 7d - ## Maximum accepted size for uploads in bytes - PICSUR_MAX_FILE_SIZE: 52428800 # 50 MB in bytes - ## No need to touch this, unless you use a custom frontend - # PICSUR_STATIC_FRONTEND_ROOT: "/picsur/frontend/dist" - ## Warning: Verbose mode might log sensitive data - PICSUR_VERBOSE: "true" - -networks: - traefik: - external: true - default: services: - picsur: - image: git.nixc.us/nixius/picsur:production-picsur - <<: *default-environment - networks: - - traefik - - default + asciinema: + image: git.nixc.us/nixius/asciinema:production-asciinema + # ports: + # - '80:4000' + environment: + - SECRET_KEY_BASE=MSDkdc9ZI5ar3VC3eOhRp3xWxiIQkEi3LR1UYNtU7NUAJeERhMVSvb0E4b5ODyCW + - URL_HOST=asciinema.nixc.us + - URL_PORT=443 + - SMTP_HOST=box.p.nixc.us + - SMTP_USERNAME=asciinema@nixc.us + - SMTP_PASSWORD=DiHcwSup8RSo66LgEzGi7R4PBWsDyFgxn + volumes: + - /mnt/tank/persist/nixc.us/asciinema/production/data:/var/opt/asciinema deploy: placement: constraints: - node.hostname == macmini14 labels: homepage.group: apps - homepage.name: picsur - homepage.href: https://picsur.nixc.us/ - homepage.description: picsur + homepage.name: asciinema + homepage.href: https://asciinema.nixc.us/ + homepage.description: asciinema traefik.enable: "true" - traefik.http.routers.picsur.tls: "true" - traefik.http.services.production_picsur.loadbalancer.server.port: 8080 - traefik.http.routers.production_picsur.rule: Host(`picsur.nixc.us`) - traefik.http.routers.production_picsur.entrypoints: websecure - traefik.http.routers.production_picsur.tls.certresolver: letsencryptresolver - traefik.http.routers.production_picsur.service: production_picsur + traefik.http.routers.asciinema.tls: "true" + traefik.http.services.production_asciinema.loadbalancer.server.port: 8080 + traefik.http.routers.production_asciinema.rule: Host(`asciinema.nixc.us`) + traefik.http.routers.production_asciinema.entrypoints: websecure + traefik.http.routers.production_asciinema.tls.certresolver: letsencryptresolver + traefik.http.routers.production_asciinema.service: production_asciinema traefik.docker.network: traefik - # traefik.http.routers.production_picsur.middlewares: 'authelia_authelia@docker' + # traefik.http.routers.production_asciinema.middlewares: 'authelia_authelia@docker' update_config: order: stop-first failure_action: rollback @@ -63,12 +40,16 @@ services: condition: on-failure postgres: - image: git.nixc.us/nixius/picsur:production-postgres - <<: *default-environment - networks: - - default + image: git.nixc.us/nixius/asciinema:production-postgres + environment: + - POSTGRES_HOST_AUTH_METHOD=trust volumes: - - /mnt/tank/persist/nixc.us/picsur/production/db:/var/lib/postgresql/data + - /mnt/tank/persist/nixc.us/asciinema/production/db:/var/lib/postgresql/data + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U postgres'] + interval: 2s + timeout: 5s + retries: 10 deploy: placement: constraints: diff --git a/stack.staging.yml b/stack.staging.yml index fe2a846..cf350cc 100644 --- a/stack.staging.yml +++ b/stack.staging.yml @@ -1,58 +1,35 @@ -version: "3.7" - -x-environment: &default-environment - environment: - POSTGRES_DB: picsur - POSTGRES_PASSWORD: picsur - POSTGRES_USER: picsur - # PICSUR_HOST: '0.0.0.0' - # PICSUR_PORT: 8080 - PICSUR_DB_HOST: picsur_postgres - PICSUR_DB_PORT: 5432 - PICSUR_DB_USERNAME: picsur - PICSUR_DB_PASSWORD: picsur - PICSUR_DB_DATABASE: picsur - ## The default username is admin, this is not modifyable - PICSUR_ADMIN_PASSWORD: Jc4SfnnvBD9w3E4w6si8FnreQ8zoUxRco - ## Optional, random secret will be generated if not set - PICSUR_JWT_SECRET: lkBNe0tKsHxfAUh6CzyAWOxkl5AMsG/jFCG/o93yocU= - PICSUR_JWT_EXPIRY: 7d - ## Maximum accepted size for uploads in bytes - PICSUR_MAX_FILE_SIZE: 52428800 # 50 MB in bytes - ## No need to touch this, unless you use a custom frontend - # PICSUR_STATIC_FRONTEND_ROOT: "/picsur/frontend/dist" - ## Warning: Verbose mode might log sensitive data - PICSUR_VERBOSE: "true" - -networks: - traefik: - external: true - default: services: - picsur: - image: git.nixc.us/nixius/picsur:staging-picsur - <<: *default-environment - networks: - - traefik - - default + asciinema: + image: git.nixc.us/nixius/asciinema:staging-asciinema + # ports: + # - '80:4000' + environment: + - SECRET_KEY_BASE=MSDkdc9ZI5ar3VC3eOhRp3xWxiIQkEi3LR1UYNtU7NUAJeERhMVSvb0E4b5ODyCW + - URL_HOST=asciinema.nixc.us + - URL_PORT=443 + - SMTP_HOST=box.p.nixc.us + - SMTP_USERNAME=asciinema@nixc.us + - SMTP_PASSWORD=DiHcwSup8RSo66LgEzGi7R4PBWsDyFgxn + # volumes: + # - /mnt/tank/persist/nixc.us/asciinema/staging/data:/var/opt/asciinema deploy: placement: constraints: - node.hostname == macmini14 labels: homepage.group: apps - homepage.name: picsur - homepage.href: https://picsur.nixc.us/ - homepage.description: picsur + homepage.name: asciinema + homepage.href: https://staging.asciinema.nixc.us/ + homepage.description: asciinema traefik.enable: "true" - traefik.http.routers.picsur.tls: "true" - traefik.http.services.staging_picsur.loadbalancer.server.port: 8080 - traefik.http.routers.staging_picsur.rule: Host(`staging.picsur.nixc.us`) - traefik.http.routers.staging_picsur.entrypoints: websecure - traefik.http.routers.staging_picsur.tls.certresolver: letsencryptresolver - traefik.http.routers.staging_picsur.service: staging_picsur + traefik.http.routers.asciinema.tls: "true" + traefik.http.services.staging_asciinema.loadbalancer.server.port: 8080 + traefik.http.routers.staging_asciinema.rule: Host(`asciinema.nixc.us`) + traefik.http.routers.staging_asciinema.entrypoints: websecure + traefik.http.routers.staging_asciinema.tls.certresolver: letsencryptresolver + traefik.http.routers.staging_asciinema.service: staging_asciinema traefik.docker.network: traefik - # traefik.http.routers.staging_picsur.middlewares: 'authelia_authelia@docker' + # traefik.http.routers.staging_asciinema.middlewares: 'authelia_authelia@docker' update_config: order: stop-first failure_action: rollback @@ -63,12 +40,16 @@ services: condition: on-failure postgres: - image: git.nixc.us/nixius/picsur:staging-postgres - <<: *default-environment - networks: - - default + image: git.nixc.us/nixius/asciinema:staging-postgres + environment: + - POSTGRES_HOST_AUTH_METHOD=trust # volumes: - # - /mnt/tank/persist/nixc.us/picsur/staging/db:/var/lib/postgresql/data + # - /mnt/tank/persist/nixc.us/asciinema/staging/db:/var/lib/postgresql/data + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U postgres'] + interval: 2s + timeout: 5s + retries: 10 deploy: placement: constraints: