From 83ac0d3f5cacf1c7f914be9d5009028bd5882b24 Mon Sep 17 00:00:00 2001 From: Natalie Rose Date: Tue, 8 Sep 2026 11:11:36 +1000 Subject: [PATCH] Ripping out old stuff that we need to fix --- .gitmodules | 19 +--- app | 1 - assets | 1 - bin/docker.sql | 6 - docker/.env.example | 2 - docker/app/Dockerfile | 6 - docker/app/docker-compose.yml | 17 --- docker/beanstalk/docker-compose.yml | 14 --- docker/docker-compose.dev.yml | 61 ---------- docker/docker-compose.homelab.yml | 96 ---------------- docker/docker-compose.test.yml | 94 ---------------- docker/logrotate/Dockerfile | 10 -- docker/logrotate/entrypoint.sh | 17 --- docker/memcached/docker-compose.yml | 9 -- docker/mysql/docker-compose.yml | 11 -- docker/nginx/Dockerfile | 3 - docker/nginx/docker-compose.yml | 28 ----- docker/nginx/nginx.conf | 105 ------------------ docker/phpmyadmin/docker-compose.yml | 15 --- docker/server/Dockerfile | 75 ------------- docker/server/docker-compose.yml | 124 --------------------- docker/server/etc-dev/lacuna.conf | 142 ------------------------ docker/server/etc-dev/log4perl.conf | 21 ---- docker/server/etc-homelab/lacuna.conf | 142 ------------------------ docker/server/etc-homelab/log4perl.conf | 19 ---- docker/server/etc-test/lacuna.conf | 142 ------------------------ docker/server/etc-test/log4perl.conf | 19 ---- docker/server/schedule.ini | 42 ------- docker/super-ui/Dockerfile | 6 - docker/super-ui/docker-compose.yml | 13 --- docker/tailscale/config/lacuna.json | 19 ---- docker/tailscale/docker-compose.yml | 25 ----- docker/v2-api/docker-compose.yml | 7 -- homepage | 1 - package.json | 18 +-- super-ui | 1 - 36 files changed, 3 insertions(+), 1328 deletions(-) delete mode 160000 app delete mode 160000 assets delete mode 100644 bin/docker.sql delete mode 100644 docker/.env.example delete mode 100644 docker/app/Dockerfile delete mode 100644 docker/app/docker-compose.yml delete mode 100644 docker/beanstalk/docker-compose.yml delete mode 100644 docker/docker-compose.dev.yml delete mode 100644 docker/docker-compose.homelab.yml delete mode 100644 docker/docker-compose.test.yml delete mode 100644 docker/logrotate/Dockerfile delete mode 100644 docker/logrotate/entrypoint.sh delete mode 100644 docker/memcached/docker-compose.yml delete mode 100644 docker/mysql/docker-compose.yml delete mode 100644 docker/nginx/Dockerfile delete mode 100644 docker/nginx/docker-compose.yml delete mode 100644 docker/nginx/nginx.conf delete mode 100644 docker/phpmyadmin/docker-compose.yml delete mode 100644 docker/server/Dockerfile delete mode 100644 docker/server/docker-compose.yml delete mode 100644 docker/server/etc-dev/lacuna.conf delete mode 100644 docker/server/etc-dev/log4perl.conf delete mode 100644 docker/server/etc-homelab/lacuna.conf delete mode 100644 docker/server/etc-homelab/log4perl.conf delete mode 100644 docker/server/etc-test/lacuna.conf delete mode 100644 docker/server/etc-test/log4perl.conf delete mode 100644 docker/server/schedule.ini delete mode 100644 docker/super-ui/Dockerfile delete mode 100644 docker/super-ui/docker-compose.yml delete mode 100644 docker/tailscale/config/lacuna.json delete mode 100644 docker/tailscale/docker-compose.yml delete mode 100644 docker/v2-api/docker-compose.yml delete mode 160000 homepage delete mode 160000 super-ui diff --git a/.gitmodules b/.gitmodules index 5b5d6a4d..63c8ef39 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,3 @@ -[submodule "assets"] - path = assets - url = https://gitea.allosaurus-chromatic.ts.net/tlecommunity/assets.git - -[submodule "app"] - path = app - url = https://gitea.allosaurus-chromatic.ts.net/tlecommunity/app.git - -[submodule "homepage"] - path = homepage - url = https://gitea.allosaurus-chromatic.ts.net/tlecommunity/homepage.git - -[submodule "super-ui"] - path = super-ui - url = https://gitea.allosaurus-chromatic.ts.net/tlecommunity/super-ui.git [submodule "missions"] - path = missions - url = https://gitea.allosaurus-chromatic.ts.net/tlecommunity/missions.git + path = missions + url = https://gitea.allosaurus-chromatic.ts.net/tlecommunity/missions.git diff --git a/app b/app deleted file mode 160000 index 911f7637..00000000 --- a/app +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 911f7637303a436e1b066c5862205f0f0469d745 diff --git a/assets b/assets deleted file mode 160000 index b0ce9acb..00000000 --- a/assets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b0ce9acb945ec646d869913f41e8d5b2c3c48744 diff --git a/bin/docker.sql b/bin/docker.sql deleted file mode 100644 index 4d86e1c2..00000000 --- a/bin/docker.sql +++ /dev/null @@ -1,6 +0,0 @@ -create database lacuna; -create user 'lacuna'@'%' identified by 'lacuna'; -grant all privileges on lacuna.* to 'lacuna'@'%'; -flush privileges; - - diff --git a/docker/.env.example b/docker/.env.example deleted file mode 100644 index a786e601..00000000 --- a/docker/.env.example +++ /dev/null @@ -1,2 +0,0 @@ - -CONTAINER_REGISTRY_URL= diff --git a/docker/app/Dockerfile b/docker/app/Dockerfile deleted file mode 100644 index fcf25973..00000000 --- a/docker/app/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM node:22 - -WORKDIR /usr/src/app - -COPY ./app/package.json ./app/package-lock.json ./app/.npmrc ./ -RUN npm ci diff --git a/docker/app/docker-compose.yml b/docker/app/docker-compose.yml deleted file mode 100644 index 6a9c3b33..00000000 --- a/docker/app/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -volumes: - app-node_modules: - -services: - app: - build: - context: ./../../ - dockerfile: ./docker/app/Dockerfile - container_name: app - command: '/bin/bash -c "npm ci && npx vite build"' - volumes: - - app-node_modules:/usr/src/app/node_modules - - ./../../app:/usr/src/app - environment: - LACUNA_ASSETS_URL: http://localhost:3000/assets/ - LACUNA_SERVER_URL: http://localhost:3000/ - LACUNA_API_KEY: anonymous diff --git a/docker/beanstalk/docker-compose.yml b/docker/beanstalk/docker-compose.yml deleted file mode 100644 index 53036c23..00000000 --- a/docker/beanstalk/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - beanstalk-console: - container_name: beanstalk-console - depends_on: - - beanstalk - image: schickling/beanstalkd-console - ports: - - 2080:2080 - - beanstalk: - container_name: beanstalk - image: schickling/beanstalkd - ports: - - 11300:11300 diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml deleted file mode 100644 index e95728db..00000000 --- a/docker/docker-compose.dev.yml +++ /dev/null @@ -1,61 +0,0 @@ -include: - - ./app/docker-compose.yml - - ./beanstalk/docker-compose.yml - - ./memcached/docker-compose.yml - - ./mysql/docker-compose.yml - - ./phpmyadmin/docker-compose.yml - - ./super-ui/docker-compose.yml - - ./v2-api/docker-compose.yml - -services: - nginx: - extends: - file: ./nginx/docker-compose.yml - service: nginx - ports: - - 3000:80 - - server: - extends: - file: ./server/docker-compose.yml - service: server - environment: - # Disables the prod-only size-limit / profiling middleware (bin/lacuna.psgi). - TLE_NO_MIDDLEWARE: 1 - # Mounts the dev-only /test setup/teardown API (lib/Lacuna/Web/TestSetup.pm). - # Deliberately absent from the test/homelab overlays. - LACUNA_TEST_SETUP_API: 1 - volumes: - - ./server/etc-dev:/home/lacuna/server/etc - - server-building-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-building-scheduler - volumes: - - ./server/etc-dev:/home/lacuna/server/etc - - server-ship-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-ship-scheduler - volumes: - - ./server/etc-dev:/home/lacuna/server/etc - - server-captcha-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-captcha-scheduler - volumes: - - ./server/etc-dev:/home/lacuna/server/etc - - server-script-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-script-scheduler - -networks: - default: - name: lacuna-dev - -name: lacuna-dev diff --git a/docker/docker-compose.homelab.yml b/docker/docker-compose.homelab.yml deleted file mode 100644 index 365f6a43..00000000 --- a/docker/docker-compose.homelab.yml +++ /dev/null @@ -1,96 +0,0 @@ -# Overlays that customise a service pull it in via `extends` (not `include`): -# Compose rejects a top-level override of a service that was brought in through -# `include` ("conflicts with imported resource"). Services used as-is stay in -# `include` below. -include: - - ./beanstalk/docker-compose.yml - - ./memcached/docker-compose.yml - - ./mysql/docker-compose.yml - - ./super-ui/docker-compose.yml - - ./tailscale/docker-compose.yml - - ./v2-api/docker-compose.yml - -volumes: - # Declared here because `app` is pulled via `extends` rather than `include`, - # so its own top-level `volumes:` block does not come along. - app-node_modules: - -services: - nginx: - extends: - file: ./nginx/docker-compose.yml - service: nginx - network_mode: service:tailscale - depends_on: - tailscale: - condition: service_healthy - - app: - extends: - file: ./app/docker-compose.yml - service: app - command: '/bin/bash -c "npm ci && npx vite build"' - environment: - LACUNA_ASSETS_URL: https://lacuna.allosaurus-chromatic.ts.net/assets/ - LACUNA_SERVER_URL: https://lacuna.allosaurus-chromatic.ts.net - LACUNA_API_KEY: anonymous - - server: - extends: - file: ./server/docker-compose.yml - service: server - restart: unless-stopped - environment: - # Disables the prod-only size-limit / profiling middleware (bin/lacuna.psgi). - TLE_NO_MIDDLEWARE: 1 - volumes: - - ./server/etc-homelab:/home/lacuna/server/etc - - server-building-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-building-scheduler - restart: unless-stopped - volumes: - - ./server/etc-homelab:/home/lacuna/server/etc - - server-ship-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-ship-scheduler - restart: unless-stopped - volumes: - - ./server/etc-homelab:/home/lacuna/server/etc - - server-captcha-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-captcha-scheduler - restart: unless-stopped - volumes: - - ./server/etc-homelab:/home/lacuna/server/etc - - server-script-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-script-scheduler - restart: unless-stopped - - # Rotates the shared ./log tree daily (copytruncate, 14 days, gzip). - # Prod only -- dev/test churn the stack often enough and rely on the - # json-file size caps plus manual cleanup. - logrotate: - build: - context: ./logrotate - dockerfile: Dockerfile - container_name: logrotate - restart: unless-stopped - volumes: - - ./../log:/home/lacuna/server/log - - ./../bin/lacuna.logrotate:/etc/logrotate.d/lacuna:ro - -networks: - default: - name: lacuna-homelab - -name: lacuna-homelab diff --git a/docker/docker-compose.test.yml b/docker/docker-compose.test.yml deleted file mode 100644 index cf2d5bba..00000000 --- a/docker/docker-compose.test.yml +++ /dev/null @@ -1,94 +0,0 @@ -# Overlays that customise a service pull it in via `extends` (not `include`): -# Compose rejects a top-level override of a service that was brought in through -# `include` ("conflicts with imported resource"). Services used as-is stay in -# `include` below. -include: - - ./beanstalk/docker-compose.yml - - ./memcached/docker-compose.yml - - ./mysql/docker-compose.yml - - ./super-ui/docker-compose.yml - - ./v2-api/docker-compose.yml - -volumes: - # Declared here because `app` is pulled via `extends` rather than `include`, - # so its own top-level `volumes:` block does not come along. - app-node_modules: - -services: - tailscale: - extends: - file: ./tailscale/docker-compose.yml - service: tailscale - hostname: lacuna-test - - nginx: - extends: - file: ./nginx/docker-compose.yml - service: nginx - network_mode: service:tailscale - depends_on: - tailscale: - condition: service_healthy - - app: - extends: - file: ./app/docker-compose.yml - service: app - command: '/bin/bash -c "npm ci && npx vite build"' - environment: - LACUNA_ASSETS_URL: https://lacuna-test.allosaurus-chromatic.ts.net/assets/ - LACUNA_SERVER_URL: https://lacuna-test.allosaurus-chromatic.ts.net - LACUNA_API_KEY: anonymous - - server: - extends: - file: ./server/docker-compose.yml - service: server - environment: - # Disables the prod-only size-limit / profiling middleware (bin/lacuna.psgi). - TLE_NO_MIDDLEWARE: 1 - LACUNA_HIGH_SPEED_TEST_MODE: 1 - # Throwaway in-container log dir: the test stack inherits the base ./log - # bind mount but has no logrotate sidecar, so keep test runs off the - # tracked host tree. etc-test/log4perl.conf points its FILE appender here. - LACUNA_LOG_DIR: /tmp/lacuna-log - volumes: - - ./server/etc-test:/home/lacuna/server/etc - - server-building-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-building-scheduler - environment: - LACUNA_LOG_DIR: /tmp/lacuna-log - volumes: - - ./server/etc-test:/home/lacuna/server/etc - - server-ship-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-ship-scheduler - environment: - LACUNA_LOG_DIR: /tmp/lacuna-log - volumes: - - ./server/etc-test:/home/lacuna/server/etc - - server-captcha-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-captcha-scheduler - environment: - LACUNA_LOG_DIR: /tmp/lacuna-log - volumes: - - ./server/etc-test:/home/lacuna/server/etc - - server-script-scheduler: - extends: - file: ./server/docker-compose.yml - service: server-script-scheduler - -networks: - default: - name: lacuna-test - -name: lacuna-test diff --git a/docker/logrotate/Dockerfile b/docker/logrotate/Dockerfile deleted file mode 100644 index 2935d0e6..00000000 --- a/docker/logrotate/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# Rotates the shared ./log tree in production. Runs as a sidecar in -# docker/docker-compose.homelab.yml; see bin/lacuna.logrotate for the policy. -FROM alpine:3.20 - -RUN apk add --no-cache logrotate tzdata - -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh - -ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/logrotate/entrypoint.sh b/docker/logrotate/entrypoint.sh deleted file mode 100644 index 6ceb9495..00000000 --- a/docker/logrotate/entrypoint.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Run logrotate once a day against the bind-mounted config. `|| true` so a -# transient error (e.g. a log file mid-rename) doesn't kill the container. -# -set -eu - -CONF=/etc/logrotate.d/lacuna -STATE=/var/lib/logrotate/lacuna.status - -mkdir -p /var/lib/logrotate - -while true; do - echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ') running logrotate" - logrotate -v -s "$STATE" "$CONF" || true - sleep 86400 -done diff --git a/docker/memcached/docker-compose.yml b/docker/memcached/docker-compose.yml deleted file mode 100644 index 86737e97..00000000 --- a/docker/memcached/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -services: - memcached: - container_name: memcached - image: memcached - command: - # Persist cache in a file to save sessions (and other data) between restarts of the docker container - - --memory-file=/tempfs_mount/memory_file - volumes: - - ./data:/tempfs_mount diff --git a/docker/mysql/docker-compose.yml b/docker/mysql/docker-compose.yml deleted file mode 100644 index 12e20abb..00000000 --- a/docker/mysql/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -services: - mysql: - container_name: mysql - platform: linux/amd64 - environment: - MYSQL_ROOT_PASSWORD: lacuna - image: mysql:5.5 - volumes: - - ./data:/var/lib/mysql - ports: - - 3306:3306 diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile deleted file mode 100644 index 64e36f90..00000000 --- a/docker/nginx/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM nginx:1.23.0 - -RUN mkdir /etc/nginx/logs diff --git a/docker/nginx/docker-compose.yml b/docker/nginx/docker-compose.yml deleted file mode 100644 index bbeb91a1..00000000 --- a/docker/nginx/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -services: - nginx: - build: - context: ./../../ - dockerfile: ./docker/nginx/Dockerfile - container_name: nginx - # Bound the json-file log (YAML anchors don't cross files, so this is spelled - # out here rather than sharing docker/server/docker-compose.yml's anchor). - logging: - driver: json-file - options: - max-size: "10m" - max-file: "5" - depends_on: - server: - condition: service_started - v2-api: - condition: service_started - volumes: - - ./nginx.conf:/etc/nginx/nginx.conf - - ./../../var:/home/lacuna/server/var - - ./../../log/nginx:/etc/nginx/logs - - ./../../captcha:/home/lacuna/server/captcha - - ./../../assets:/home/lacuna/server/var/www/public/assets - - ./../../homepage:/home/lacuna/server/var/www/public/homepage - - ./../../var/www/public/api/api.css:/home/lacuna/server/var/www/public/api/api.css - - ./../../app/dist:/home/lacuna/server/var/www/public/app - - ./../../super-ui/dist:/home/lacuna/server/var/www/public/super-ui diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf deleted file mode 100644 index 685854ac..00000000 --- a/docker/nginx/nginx.conf +++ /dev/null @@ -1,105 +0,0 @@ -worker_processes 1; - -error_log logs/error.log; - -events { - worker_connections 1024; -} - -http { - include mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - # `logs/` is relative to the nginx prefix (/etc/nginx) -> /etc/nginx/logs, - # which compose bind-mounts to host log/nginx/. Was previously unset, so the - # access log went to the image's /dev/stdout symlink and was lost. - access_log logs/access.log main; - - sendfile on; - - keepalive_timeout 65; - - gzip on; - gzip_types text/plain text/css application/json application/json-rpc application/x-javascript text/xml application/xml application/xml+rss text/javascript; - gzip_comp_level 9; - - server { - listen 80; - server_name 0.0.0.0; - - location * { - add_header Access-Control-Allow-Origin *; - } - - location / { - add_header Cache-Control must-revalidate; - add_header Cache-Control public; - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Headers 'content-type,x-requested-with'; - root /home/lacuna/server/var/www/public; - # For debugging: - add_header X-URI $uri always; - add_header X-Served-By 'TLE-Static-Handler' always; - try_files $uri - $uri/index.html - /homepage$uri - /homepage$uri/index.html - @backend; - } - - location = /api { - rewrite ^ /api/ permanent; - } - location ^~ /api/ { - root /home/lacuna/server/var/www/public; - index Intro.html; - } - - location = /assets { - rewrite ^ /assets/ permanent; - } - location ^~ /assets/ { - root /home/lacuna/server/var/www/public; - index README.txt; # TODO NJR: make a nicer index page than this readme file - } - - location = /app { - rewrite ^ /app/ permanent; - } - location ^~ /app/ { - root /home/lacuna/server/var/www/public; - } - - location = /starmap { - rewrite ^ /starmap/ permanent; - } - location ^~ /starmap/ { - root /home/lacuna/server/var/www/public; - index index.html; - } - - location ^~ /captcha/ { - root /home/lacuna/server/captcha; - rewrite ^/captcha/(.*)$ /$1 break; - } - - location ~ /v2/.* { - proxy_pass http://v2-api:5999; - proxy_set_header X-Forwarded-Host $remote_addr; - # For debugging: - add_header X-Served-By 'TLE-V2-Proxy' always; - } - - location @backend { - proxy_pass http://server:5000; - proxy_set_header X-Real-IP $remote_addr; - # For debugging: - add_header X-Served-By 'TLE-V1-Proxy' always; - add_header X-URI $uri always; - } - } -} diff --git a/docker/phpmyadmin/docker-compose.yml b/docker/phpmyadmin/docker-compose.yml deleted file mode 100644 index 445d28de..00000000 --- a/docker/phpmyadmin/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -# Dev-only DB browser. Included from docker-compose.dev.yml only — deliberately -# absent from the test/homelab overlays (no reason to run it there, and no -# reason to expose port 8888 on a Tailscale-facing host). -services: - phpmyadmin: - container_name: phpmyadmin - image: phpmyadmin:5.2-apache - environment: - PMA_HOST: mysql - ports: - - 8888:80 - depends_on: - - mysql - links: - - mysql diff --git a/docker/server/Dockerfile b/docker/server/Dockerfile deleted file mode 100644 index 58a5761e..00000000 --- a/docker/server/Dockerfile +++ /dev/null @@ -1,75 +0,0 @@ -# The Lacuna game server (Perl backend). -# -# Perl 5.40 on the official image (Debian bookworm). Replaces the old -# hand-rolled source build of perl-5.24.0 on almalinux:8. -# -# Dependencies come from /home/lacuna/server/cpanfile + cpanfile.snapshot via -# Carton. To change a dependency: edit cpanfile at the repo root, run -# `carton install` to refresh cpanfile.snapshot, commit both. -# -# Application source (lib/, bin/, t/, etc/) is bind-mounted at runtime by -# docker-compose — it is NOT copied into this image. - -FROM perl:5.40-bookworm - -# System libraries the XS dependencies link against (Debian package names). -RUN apt-get update && apt-get install -y --no-install-recommends \ - build-essential \ - pkg-config \ - git \ - curl \ - ca-certificates \ - default-libmysqlclient-dev \ - libgd-dev \ - libexpat1-dev \ - libxml2-dev \ - libssl-dev \ - zlib1g-dev \ - libncurses-dev \ - libmemcached-dev \ - && rm -rf /var/lib/apt/lists/* - -# -f: no-op if the group already exists (it does on Debian; it did not on AlmaLinux). -RUN groupadd -f nogroup - -ENV ANYEVENT_WEBSOCKET_TEST_SKIP_SSL=1 - -WORKDIR /home/lacuna/server - -# Dependency manifest + lockfile. Kept in its own layer so a source change -# doesn't reinstall ~100 CPAN modules. -COPY cpanfile cpanfile.snapshot* ./ - -RUN cpanm --notest Carton - -# Memcached::libmemcached compiles a bundled libmemcached from source (a full -# autotools project) and overruns cpanm's default build-phase timeout. Carton -# wipes PERL_CPANM_OPT, so it can't pass the longer timeout through — pre-install -# this one module into ./local with an explicit timeout (version pinned to match -# the snapshot); carton then finds it already satisfied and skips it. -RUN cpanm --notest -l local --build-timeout=3600 --configure-timeout=1800 \ - Memcached::libmemcached@1.001801 - -# With a committed cpanfile.snapshot, install strictly from it (reproducible). -# On the very first build (no snapshot yet), resolve freely and generate one — -# extract it with `docker cp` and commit it, then all later builds are pinned. -RUN if [ -f cpanfile.snapshot ]; then carton install --deployment; else carton install; fi \ - && rm -rf /root/.cpanm /root/.perl-cpm - -# Carton installs into ./local — put its binaries and libs on the default -# search paths so `plackup` / `perl` in bin/startdev.sh and the compose -# `command:` lines resolve without needing `carton exec`. -ENV PATH="/home/lacuna/server/local/bin:${PATH}" \ - PERL5LIB="/home/lacuna/server/local/lib/perl5" \ - PERLLIB="/home/lacuna/server/lib" \ - TERM=xterm - -# Log tree (mirrors docker/nginx/Dockerfile's `mkdir /etc/nginx/logs`). Compose -# bind-mounts host ./log over this at run time; creating it here means the -# subdirs still exist when the mount is absent (bare-metal, or the test overlay -# which redirects LACUNA_LOG_DIR elsewhere). -RUN mkdir -p /home/lacuna/server/log/server \ - /home/lacuna/server/log/scheduler \ - /home/lacuna/server/log/cron - -WORKDIR /home/lacuna/server/bin diff --git a/docker/server/docker-compose.yml b/docker/server/docker-compose.yml deleted file mode 100644 index bbf33a00..00000000 --- a/docker/server/docker-compose.yml +++ /dev/null @@ -1,124 +0,0 @@ -# Bound every container's json-file log so `docker logs` / the host daemon's -# disk cannot grow without limit. `extends` (used by the dev/test/homelab -# overlays) copies the *resolved* logging map, so the anchor need only live here. -x-logging: &default-logging - driver: json-file - options: - max-size: "10m" - max-file: "5" - -services: - server: - build: - context: ./../../ - dockerfile: ./docker/server/Dockerfile - command: '/bin/bash startdev.sh' - container_name: server - depends_on: - - mysql - - memcached - - beanstalk - environment: - # Root of the host-mounted log tree (see the ./../../log mount below). - # Scripts fall back to this same path when the var is unset. - LACUNA_LOG_DIR: /home/lacuna/server/log - logging: *default-logging - ports: - - 3050:5000 - volumes: - - ./../../bin:/home/lacuna/server/bin - - ./../../captcha:/home/lacuna/server/captcha - - ./../../docs:/home/lacuna/server/docs - - ./../../lib:/home/lacuna/server/lib - - ./../../t:/home/lacuna/server/t - - ./../../var:/home/lacuna/server/var - - ./../../var/www/public/api/api.css:/home/lacuna/server/var/www/public/api/api.css - # Read-only: the app serves asset URLs via nginx, but t/370_Medals.t checks - # the medal PNGs exist on disk. - - ./../../assets:/home/lacuna/server/var/www/public/assets:ro - - ./../../missions:/home/lacuna/server/missions - - ./../../tmp:/tmp - - ./../../log:/home/lacuna/server/log - - server-building-scheduler: - build: - context: ./../../ - dockerfile: ./docker/server/Dockerfile - command: '/bin/bash run_scheduler.sh schedule_building.pl --noquiet --nodaemonize --initialize' - container_name: server-building-scheduler - depends_on: - - mysql - - memcached - - beanstalk - environment: - LACUNA_LOG_DIR: /home/lacuna/server/log - logging: *default-logging - volumes: - - ./../../bin:/home/lacuna/server/bin - - ./../../captcha:/home/lacuna/server/captcha - - ./../../docs:/home/lacuna/server/docs - - ./../../lib:/home/lacuna/server/lib - - ./../../t:/home/lacuna/server/t - - ./../../var:/home/lacuna/server/var - - ./../../var/www/public/api/api.css:/home/lacuna/server/var/www/public/api/api.css - - ./../../tmp:/tmp - - ./../../log:/home/lacuna/server/log - - server-ship-scheduler: - build: - context: ./../../ - dockerfile: ./docker/server/Dockerfile - command: '/bin/bash run_scheduler.sh schedule_ship_arrival.pl --noquiet --nodaemonize --initialize' - container_name: server-ship-scheduler - depends_on: - - mysql - - memcached - - beanstalk - environment: - LACUNA_LOG_DIR: /home/lacuna/server/log - logging: *default-logging - volumes: - - ./../../bin:/home/lacuna/server/bin - - ./../../captcha:/home/lacuna/server/captcha - - ./../../docs:/home/lacuna/server/docs - - ./../../lib:/home/lacuna/server/lib - - ./../../t:/home/lacuna/server/t - - ./../../var:/home/lacuna/server/var - - ./../../var/www/public/api/api.css:/home/lacuna/server/var/www/public/api/api.css - - ./../../tmp:/tmp - - ./../../log:/home/lacuna/server/log - - server-captcha-scheduler: - build: - context: ./../../ - dockerfile: ./docker/server/Dockerfile - command: '/bin/bash run_scheduler.sh schedule_captcha.pl --noquiet --nodaemonize' - container_name: server-captcha-scheduler - depends_on: - - mysql - - memcached - - beanstalk - environment: - LACUNA_LOG_DIR: /home/lacuna/server/log - logging: *default-logging - volumes: - - ./../../bin:/home/lacuna/server/bin - - ./../../captcha:/home/lacuna/server/captcha - - ./../../docs:/home/lacuna/server/docs - - ./../../lib:/home/lacuna/server/lib - - ./../../t:/home/lacuna/server/t - - ./../../var:/home/lacuna/server/var - - ./../../var/www/public/api/api.css:/home/lacuna/server/var/www/public/api/api.css - - ./../../tmp:/tmp - - ./../../log:/home/lacuna/server/log - - server-script-scheduler: - container_name: server-script-scheduler - image: mcuadros/ofelia:latest - depends_on: - - server - command: daemon - logging: *default-logging - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - ./schedule.ini:/etc/ofelia.conf diff --git a/docker/server/etc-dev/lacuna.conf b/docker/server/etc-dev/lacuna.conf deleted file mode 100644 index 20d9f332..00000000 --- a/docker/server/etc-dev/lacuna.conf +++ /dev/null @@ -1,142 +0,0 @@ -# config-file-type: JSON 1 -{ - "develop_mode" : 0, - - "bhg_param" : { -# If any are set to 0, use default. - "success" : 0, - "waste_cost" : 0, - "recovery" : 0, - "side_chance" : 0, - }, - "beanstalk" : { - "debug" : 0, - "server" : "beanstalk:11300", - "ttr" : 120, - "max_timeouts" : 10, - "max_reserves" : 10 - }, - "captcha" : { - # path to the fonts being used. - "fontpath" : "/home/lacuna/server/var/fonts", - # .ttf fonts in above path - "fonts" : [ - "Ayuthaya", - "Chalkduster", - "Caveat", - "EduNSWACTCursive", - "Merienda", - "PermanentMarker", - "PlaywriteAUQLD" - ], - }, - "db" : { - "dsn" : "DBI:mysql:host=mysql;database=lacuna", - "password" : "lacuna", - "username" : "root" - }, - "essentia_code_server_url" : "", - "feeds" : { - "url" : "https://lacuna.allosaurus-chromatic.ts.net/" - }, - "itransact" : { - "APIKey" : "XXXX", - "APIUsername" : "XXXX", - "Gateway" : "XXXX", - "OrderFormUID" : "XXXX", - "SendCustomerEmail" : "TRUE", - "SendMerchantEmail" : "TRUE", - "TestMode" : "FALSE" - }, - "jambool" : { - "api_url" : "XXXX", - "offer_id" : "XXXX", - "secret_key" : "XXXX" - }, - "map_size" : { - "x" : [ - -1500, - 1500 - ], - "y" : [ - -1500, - 1500 - ] - }, - "memcached" : [ - { - "host" : "memcached", - "port" : "11211" - } - ], - "neutral_area" : { -# If zone is set to a valid zone, x & y are confined to within that zone. -# Coord set to 1 will further narrow Neutral area. -# Setting zone to 0 will only use x & y. -# Setting x & y outside of the zone, will result in nothing be within the NZ. -# If only coord is set, then zone boundries are ignored. - "active" : 1, - "zone" : 1, - "zone_list" : [ - "-3|0" - ], - "coord" : 0, - "x" : [ - -1000, - -750 - ], - "y" : [ - -250, - 250 - ] - }, - "offline" : 0, - "rpc_limit" : 10000, - "rpc_throttle" : 200, - "self_destruct_after_inactive_days" : 9999999, - "server_key" : "XXXX", - "server_keys" : [ - "XXXX" - ], - "server_url" : "https://lacuna.allosaurus-chromatic.ts.net/", - "assets_url": "https://lacuna.allosaurus-chromatic.ts.net/assets/", - "starter_zone" : { -# If zone is set to a valid zone, x & y are confined to within that zone. -# Coord set to 1 will further narrow area. -# Setting zone to 0 will only use x & y. -# Setting x & y outside of the zone, will result in nothing be within the NZ. -# If only coord is set, then zone boundries are ignored. - "active" : 1, - # "max_colonies" : 2, - "zone" : 1, - "zone_list" : [ - "0|0" - # "-1|-1", - # "-1|1", - # "1|-1", - # "1|1" - ], - "coord" : 0, - "x" : [ -50, 50 ], - "y" : [ -50, 50 ] - }, - "voting_sites" : [ - { - "name" : "Rose Harbour", - "url" : "https://nataliethistime.com/" - }, - { - "name" : "YouTube Channel", - "url" : "https://www.youtube.com/@nataliethistime" - }, - { - "name" : "TLE Community GitHub", - "url" : "https://github.com/tlecommunity" - } - ], - "test" : { - "foo" : "bar" - }, - "secret" : "a random code", - "email_secret" : "another random code" -} diff --git a/docker/server/etc-dev/log4perl.conf b/docker/server/etc-dev/log4perl.conf deleted file mode 100644 index 872f4603..00000000 --- a/docker/server/etc-dev/log4perl.conf +++ /dev/null @@ -1,21 +0,0 @@ -# Dev logging. SCREEN keeps every line in `docker logs server`; FILE persists it -# to the host-mounted log tree (log/server/lacuna.log) for tailing + rotation. -# -# The FILE path is hard-coded rather than read from LACUNA_LOG_DIR: the mount -# point is invariant under compose and this keeps the config trivially auditable. -# (etc-test points FILE at /tmp/lacuna-log to match its LACUNA_LOG_DIR override.) -log4perl.logger = DEBUG, SCREEN, FILE - -log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen -log4perl.appender.SCREEN.stderr = 1 -log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::SimpleLayout - -log4perl.appender.FILE = Log::Log4perl::Appender::File -log4perl.appender.FILE.filename = /home/lacuna/server/log/server/lacuna.log -log4perl.appender.FILE.mode = append -log4perl.appender.FILE.mkpath = 1 -log4perl.appender.FILE.autoflush = 1 -log4perl.appender.FILE.recreate = 1 -log4perl.appender.FILE.recreate_check_interval = 30 -log4perl.appender.FILE.layout = Log::Log4perl::Layout::PatternLayout -log4perl.appender.FILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%p] %m%n diff --git a/docker/server/etc-homelab/lacuna.conf b/docker/server/etc-homelab/lacuna.conf deleted file mode 100644 index 20d9f332..00000000 --- a/docker/server/etc-homelab/lacuna.conf +++ /dev/null @@ -1,142 +0,0 @@ -# config-file-type: JSON 1 -{ - "develop_mode" : 0, - - "bhg_param" : { -# If any are set to 0, use default. - "success" : 0, - "waste_cost" : 0, - "recovery" : 0, - "side_chance" : 0, - }, - "beanstalk" : { - "debug" : 0, - "server" : "beanstalk:11300", - "ttr" : 120, - "max_timeouts" : 10, - "max_reserves" : 10 - }, - "captcha" : { - # path to the fonts being used. - "fontpath" : "/home/lacuna/server/var/fonts", - # .ttf fonts in above path - "fonts" : [ - "Ayuthaya", - "Chalkduster", - "Caveat", - "EduNSWACTCursive", - "Merienda", - "PermanentMarker", - "PlaywriteAUQLD" - ], - }, - "db" : { - "dsn" : "DBI:mysql:host=mysql;database=lacuna", - "password" : "lacuna", - "username" : "root" - }, - "essentia_code_server_url" : "", - "feeds" : { - "url" : "https://lacuna.allosaurus-chromatic.ts.net/" - }, - "itransact" : { - "APIKey" : "XXXX", - "APIUsername" : "XXXX", - "Gateway" : "XXXX", - "OrderFormUID" : "XXXX", - "SendCustomerEmail" : "TRUE", - "SendMerchantEmail" : "TRUE", - "TestMode" : "FALSE" - }, - "jambool" : { - "api_url" : "XXXX", - "offer_id" : "XXXX", - "secret_key" : "XXXX" - }, - "map_size" : { - "x" : [ - -1500, - 1500 - ], - "y" : [ - -1500, - 1500 - ] - }, - "memcached" : [ - { - "host" : "memcached", - "port" : "11211" - } - ], - "neutral_area" : { -# If zone is set to a valid zone, x & y are confined to within that zone. -# Coord set to 1 will further narrow Neutral area. -# Setting zone to 0 will only use x & y. -# Setting x & y outside of the zone, will result in nothing be within the NZ. -# If only coord is set, then zone boundries are ignored. - "active" : 1, - "zone" : 1, - "zone_list" : [ - "-3|0" - ], - "coord" : 0, - "x" : [ - -1000, - -750 - ], - "y" : [ - -250, - 250 - ] - }, - "offline" : 0, - "rpc_limit" : 10000, - "rpc_throttle" : 200, - "self_destruct_after_inactive_days" : 9999999, - "server_key" : "XXXX", - "server_keys" : [ - "XXXX" - ], - "server_url" : "https://lacuna.allosaurus-chromatic.ts.net/", - "assets_url": "https://lacuna.allosaurus-chromatic.ts.net/assets/", - "starter_zone" : { -# If zone is set to a valid zone, x & y are confined to within that zone. -# Coord set to 1 will further narrow area. -# Setting zone to 0 will only use x & y. -# Setting x & y outside of the zone, will result in nothing be within the NZ. -# If only coord is set, then zone boundries are ignored. - "active" : 1, - # "max_colonies" : 2, - "zone" : 1, - "zone_list" : [ - "0|0" - # "-1|-1", - # "-1|1", - # "1|-1", - # "1|1" - ], - "coord" : 0, - "x" : [ -50, 50 ], - "y" : [ -50, 50 ] - }, - "voting_sites" : [ - { - "name" : "Rose Harbour", - "url" : "https://nataliethistime.com/" - }, - { - "name" : "YouTube Channel", - "url" : "https://www.youtube.com/@nataliethistime" - }, - { - "name" : "TLE Community GitHub", - "url" : "https://github.com/tlecommunity" - } - ], - "test" : { - "foo" : "bar" - }, - "secret" : "a random code", - "email_secret" : "another random code" -} diff --git a/docker/server/etc-homelab/log4perl.conf b/docker/server/etc-homelab/log4perl.conf deleted file mode 100644 index d70b27bd..00000000 --- a/docker/server/etc-homelab/log4perl.conf +++ /dev/null @@ -1,19 +0,0 @@ -# Production logging. INFO (not DEBUG) is the only difference from etc-dev: it -# keeps the per-request RPC line (lib/Lacuna/RPC.pm, $log->info) but drops the -# DEBUG chatter, to bound disk. SCREEN -> `docker logs server`; FILE -> -# host-mounted log/server/lacuna.log, rotated by the logrotate sidecar. -log4perl.logger = INFO, SCREEN, FILE - -log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen -log4perl.appender.SCREEN.stderr = 1 -log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::SimpleLayout - -log4perl.appender.FILE = Log::Log4perl::Appender::File -log4perl.appender.FILE.filename = /home/lacuna/server/log/server/lacuna.log -log4perl.appender.FILE.mode = append -log4perl.appender.FILE.mkpath = 1 -log4perl.appender.FILE.autoflush = 1 -log4perl.appender.FILE.recreate = 1 -log4perl.appender.FILE.recreate_check_interval = 30 -log4perl.appender.FILE.layout = Log::Log4perl::Layout::PatternLayout -log4perl.appender.FILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%p] %m%n diff --git a/docker/server/etc-test/lacuna.conf b/docker/server/etc-test/lacuna.conf deleted file mode 100644 index 20d9f332..00000000 --- a/docker/server/etc-test/lacuna.conf +++ /dev/null @@ -1,142 +0,0 @@ -# config-file-type: JSON 1 -{ - "develop_mode" : 0, - - "bhg_param" : { -# If any are set to 0, use default. - "success" : 0, - "waste_cost" : 0, - "recovery" : 0, - "side_chance" : 0, - }, - "beanstalk" : { - "debug" : 0, - "server" : "beanstalk:11300", - "ttr" : 120, - "max_timeouts" : 10, - "max_reserves" : 10 - }, - "captcha" : { - # path to the fonts being used. - "fontpath" : "/home/lacuna/server/var/fonts", - # .ttf fonts in above path - "fonts" : [ - "Ayuthaya", - "Chalkduster", - "Caveat", - "EduNSWACTCursive", - "Merienda", - "PermanentMarker", - "PlaywriteAUQLD" - ], - }, - "db" : { - "dsn" : "DBI:mysql:host=mysql;database=lacuna", - "password" : "lacuna", - "username" : "root" - }, - "essentia_code_server_url" : "", - "feeds" : { - "url" : "https://lacuna.allosaurus-chromatic.ts.net/" - }, - "itransact" : { - "APIKey" : "XXXX", - "APIUsername" : "XXXX", - "Gateway" : "XXXX", - "OrderFormUID" : "XXXX", - "SendCustomerEmail" : "TRUE", - "SendMerchantEmail" : "TRUE", - "TestMode" : "FALSE" - }, - "jambool" : { - "api_url" : "XXXX", - "offer_id" : "XXXX", - "secret_key" : "XXXX" - }, - "map_size" : { - "x" : [ - -1500, - 1500 - ], - "y" : [ - -1500, - 1500 - ] - }, - "memcached" : [ - { - "host" : "memcached", - "port" : "11211" - } - ], - "neutral_area" : { -# If zone is set to a valid zone, x & y are confined to within that zone. -# Coord set to 1 will further narrow Neutral area. -# Setting zone to 0 will only use x & y. -# Setting x & y outside of the zone, will result in nothing be within the NZ. -# If only coord is set, then zone boundries are ignored. - "active" : 1, - "zone" : 1, - "zone_list" : [ - "-3|0" - ], - "coord" : 0, - "x" : [ - -1000, - -750 - ], - "y" : [ - -250, - 250 - ] - }, - "offline" : 0, - "rpc_limit" : 10000, - "rpc_throttle" : 200, - "self_destruct_after_inactive_days" : 9999999, - "server_key" : "XXXX", - "server_keys" : [ - "XXXX" - ], - "server_url" : "https://lacuna.allosaurus-chromatic.ts.net/", - "assets_url": "https://lacuna.allosaurus-chromatic.ts.net/assets/", - "starter_zone" : { -# If zone is set to a valid zone, x & y are confined to within that zone. -# Coord set to 1 will further narrow area. -# Setting zone to 0 will only use x & y. -# Setting x & y outside of the zone, will result in nothing be within the NZ. -# If only coord is set, then zone boundries are ignored. - "active" : 1, - # "max_colonies" : 2, - "zone" : 1, - "zone_list" : [ - "0|0" - # "-1|-1", - # "-1|1", - # "1|-1", - # "1|1" - ], - "coord" : 0, - "x" : [ -50, 50 ], - "y" : [ -50, 50 ] - }, - "voting_sites" : [ - { - "name" : "Rose Harbour", - "url" : "https://nataliethistime.com/" - }, - { - "name" : "YouTube Channel", - "url" : "https://www.youtube.com/@nataliethistime" - }, - { - "name" : "TLE Community GitHub", - "url" : "https://github.com/tlecommunity" - } - ], - "test" : { - "foo" : "bar" - }, - "secret" : "a random code", - "email_secret" : "another random code" -} diff --git a/docker/server/etc-test/log4perl.conf b/docker/server/etc-test/log4perl.conf deleted file mode 100644 index 7497ae67..00000000 --- a/docker/server/etc-test/log4perl.conf +++ /dev/null @@ -1,19 +0,0 @@ -# Test logging. Same shape as etc-dev, but FILE writes under /tmp/lacuna-log to -# match the LACUNA_LOG_DIR override in docker-compose.test.yml -- the test stack -# inherits the ./log bind mount but has no logrotate sidecar, so its output is -# kept off the tracked host tree. -log4perl.logger = DEBUG, SCREEN, FILE - -log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen -log4perl.appender.SCREEN.stderr = 1 -log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::SimpleLayout - -log4perl.appender.FILE = Log::Log4perl::Appender::File -log4perl.appender.FILE.filename = /tmp/lacuna-log/server/lacuna.log -log4perl.appender.FILE.mode = append -log4perl.appender.FILE.mkpath = 1 -log4perl.appender.FILE.autoflush = 1 -log4perl.appender.FILE.recreate = 1 -log4perl.appender.FILE.recreate_check_interval = 30 -log4perl.appender.FILE.layout = Log::Log4perl::Layout::PatternLayout -log4perl.appender.FILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%p] %m%n diff --git a/docker/server/schedule.ini b/docker/server/schedule.ini deleted file mode 100644 index 4e7242dc..00000000 --- a/docker/server/schedule.ini +++ /dev/null @@ -1,42 +0,0 @@ -# -# TLE schedule based off of the following example cron file that was probably used in production back in the day -# -# -# 20 * * * * /data/apps/bin/perl /home/lacuna/server/bin/schedule_building.pl --noquiet --daemonize --noinitialize -# 50 * * * * /data/apps/bin/perl /home/lacuna/server/bin/schedule_ship_arrival.pl --noquiet --daemonize --noinitialize -# -# 0 * * * * /home/lacuna/server/bin/run_hourly.sh -# 10 1,3,5,7,9,11,13,15,17,19,21,23 * * * /home/lacuna/server/bin/run_two_hourly.sh -# 40 2,6,10,14,18,22 * * * /home/lacuna/server/bin/run_four_hourly.sh -# 15 3 * * * /home/lacuna/server/bin/run_daily.sh -# 15 6 * * 0 /home/lacuna/server/bin/run_weekly.sh -# -# Special note that the building and ship schedule scripts now run as separate docker containers -# -# This config is passed to Ofelia, docs here https://github.com/mcuadros/ofelia -# - -[job-exec "hourly-tasks"] -schedule = @hourly -container = server -command = ./run_hourly.sh - -[job-exec "two-hourly-tasks"] -schedule = 0 10 1,3,5,7,9,11,13,15,17,19,21,23 * * * -container = server -command = ./run_two_hourly.sh - -[job-exec "four-hourly-tasks"] -schedule = 0 40 2,6,10,14,18,22 * * * -container = server -command = ./run_four_hourly.sh - -[job-exec "daily-tasks"] -schedule = 0 15 3 * * * -container = server -command = ./run_daily.sh - -[job-exec "weekly-tasks"] -schedule = 0 15 6 * * 0 -container = server -command = ./run_weekly.sh diff --git a/docker/super-ui/Dockerfile b/docker/super-ui/Dockerfile deleted file mode 100644 index 35985854..00000000 --- a/docker/super-ui/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM node:22 - -WORKDIR /usr/src/app - -COPY ./super-ui/package.json ./super-ui/package-lock.json ./super-ui/.npmrc ./ -RUN npm ci --ignore-scripts diff --git a/docker/super-ui/docker-compose.yml b/docker/super-ui/docker-compose.yml deleted file mode 100644 index 370ef06a..00000000 --- a/docker/super-ui/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -volumes: - super-ui-node_modules: - -services: - super-ui: - build: - context: ./../../ - dockerfile: ./docker/super-ui/Dockerfile - container_name: super-ui - command: '/bin/bash -c "npm ci --ignore-scripts && npm run build"' - volumes: - - super-ui-node_modules:/usr/src/app/node_modules - - ./../../super-ui:/usr/src/app diff --git a/docker/tailscale/config/lacuna.json b/docker/tailscale/config/lacuna.json deleted file mode 100644 index 088f152f..00000000 --- a/docker/tailscale/config/lacuna.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "TCP": { - "443": { - "HTTPS": true - } - }, - "Web": { - "${TS_CERT_DOMAIN}:443": { - "Handlers": { - "/": { - "Proxy": "http://127.0.0.1:80" - } - } - } - }, - "AllowFunnel": { - "${TS_CERT_DOMAIN}:443": false - } -} diff --git a/docker/tailscale/docker-compose.yml b/docker/tailscale/docker-compose.yml deleted file mode 100644 index 86b0298e..00000000 --- a/docker/tailscale/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -services: - tailscale: - image: tailscale/tailscale:latest - container_name: tailscale - hostname: lacuna - environment: - TS_AUTHKEY: ${TAILSCALE_AUTHKEY:?error} - TS_EXTRA_ARGS: --advertise-tags=tag:container - TS_SERVE_CONFIG: /config/lacuna.json - TS_STATE_DIR: /var/lib/tailscale - TS_USERSPACE: false - TS_ENABLE_HEALTH_CHECK: true - healthcheck: - test: ['CMD', 'wget', '--spider', '-q', 'http://127.0.0.1:9002/healthz'] - interval: 10s - timeout: 3s - volumes: - - ./data:/var/lib/tailscale - - ./config:/config - devices: - - /dev/net/tun:/dev/net/tun - cap_add: - - net_admin - - sys_module - restart: unless-stopped diff --git a/docker/v2-api/docker-compose.yml b/docker/v2-api/docker-compose.yml deleted file mode 100644 index 3d0b54e1..00000000 --- a/docker/v2-api/docker-compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - v2-api: - image: ${CONTAINER_REGISTRY_URL:?error}/tlecommunity/v2-api:latest - container_name: v2-api - command: node index.ts - ports: - - 5999:5999 diff --git a/homepage b/homepage deleted file mode 160000 index f21ed227..00000000 --- a/homepage +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f21ed227e7e7a748bf0abb11119dfce9779b14f6 diff --git a/package.json b/package.json index 9354eba5..dde0e700 100644 --- a/package.json +++ b/package.json @@ -3,23 +3,7 @@ "private": "true", "scripts": { "format:check": "prettier --check .", - "format:fix": "prettier --write .", - "dev:up": "docker compose --file ./docker/docker-compose.dev.yml up", - "dev:down": "docker compose --file ./docker/docker-compose.dev.yml down", - "dev:build": "docker compose --file ./docker/docker-compose.dev.yml build", - "dev:pull": "docker compose --file ./docker/docker-compose.dev.yml pull", - "dev:run": "docker compose --file ./docker/docker-compose.dev.yml run --rm", - "test:up": "docker compose --file ./docker/docker-compose.test.yml up -d", - "test:down": "docker compose --file ./docker/docker-compose.test.yml down", - "test:build": "docker compose --file ./docker/docker-compose.test.yml build", - "test:pull": "docker compose --file ./docker/docker-compose.test.yml pull", - "test:run": "docker compose --file ./docker/docker-compose.test.yml run --rm", - "homelab:up": "docker compose --file ./docker/docker-compose.homelab.yml up -d", - "homelab:down": "docker compose --file ./docker/docker-compose.homelab.yml down", - "homelab:build": "docker compose --file ./docker/docker-compose.homelab.yml build", - "homelab:pull": "docker compose --file ./docker/docker-compose.homelab.yml pull", - "homelab:run": "docker compose --file ./docker/docker-compose.homelab.yml run --rm", - "test": "docker compose --file ./docker/docker-compose.dev.yml run --rm server ./run_tests.sh" + "format:fix": "prettier --write ." }, "dependencies": { "prettier": "^3.9.6" diff --git a/super-ui b/super-ui deleted file mode 160000 index ec9cff68..00000000 --- a/super-ui +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ec9cff6805c5ad93b3cfadb5fe42efab428bbd47 -- knotmirror 0.0.1