unoffical wafrn mirror wafrn.net
atproto social-network activitypub
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add support for potenally running the workers and cache separately

+361 -164
+1 -1
.env.example
··· 11 11 CACHE_DOMAIN=cdn.localhost 12 12 MEDIA_DOMAIN=media.localhost 13 13 FRONTEND_MEDIA_URL="https://media.localhost" 14 - FRONTEND_CACHE_URL="https://cdn.localhost/?media=" 14 + FRONTEND_CACHE_URL="https://cdn.localhost/api/cache?media=" 15 15 16 16 17 17 # Email setup
+3
.gitignore
··· 44 44 45 45 # lite editor 46 46 .lite_workspace.lua 47 + 48 + # default docker compose 49 + docker-compose.yml
+6 -2
README.md
··· 121 121 122 122 ```sh 123 123 DOMAIN_NAME=wafrn.example.com 124 - CACHE_DOMAIN=wafrn.example.com 125 - MEDIA_DOMAIN=wafrn.example.com 124 + CACHE_DOMAIN=cache.wafrn.example.com 125 + MEDIA_DOMAIN=media.wafrn.example.com 126 126 PDS_DOMAIN_NAME=bsky.example.com 127 + 128 + # use the same domains as set above for MEDIA and CACHE 129 + FRONTEND_MEDIA_URL="https://media.wafrn.example.com" 130 + FRONTEND_CACHE_URL="https://cache.wafrn.example.com/api/cache?media=" 127 131 128 132 ACME_EMAIL=admin@example.com 129 133 ```
+169
docker-compose.advanced.yml
··· 1 + services: 2 + backend: &default_backend 3 + build: &default_backend_build 4 + context: packages/backend 5 + dockerfile: Dockerfile 6 + # these args configure private env vars for the backend and public env vars for the frontend 7 + args: &default_backend_build_args 8 + ADMIN_USER: ${ADMIN_USER} 9 + ADMIN_EMAIL: ${ADMIN_EMAIL} 10 + ADMIN_PASSWORD: ${ADMIN_PASSWORD} 11 + JWT_SECRET: ${JWT_SECRET} 12 + DOMAIN_NAME: ${DOMAIN_NAME} 13 + 14 + CACHE_DOMAIN: ${CACHE_DOMAIN} 15 + MEDIA_DOMAIN: ${MEDIA_DOMAIN} 16 + 17 + SMTP_HOST: ${SMTP_HOST} 18 + SMTP_USER: ${SMTP_USER} 19 + SMTP_PORT: ${SMTP_PORT} 20 + SMTP_PASSWORD: ${SMTP_PASSWORD} 21 + SMTP_FROM: ${SMTP_FROM} 22 + 23 + POSTGRES_USER: ${POSTGRES_USER} 24 + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 25 + POSTGRES_DBNAME: ${POSTGRES_DBNAME} 26 + 27 + WEBPUSH_EMAIL: ${WEBPUSH_EMAIL} 28 + WEBPUSH_PRIVATE: ${WEBPUSH_PRIVATE} 29 + WEBPUSH_PUBLIC: ${WEBPUSH_PUBLIC} 30 + 31 + ENABLE_BSKY: ${ENABLE_BSKY} 32 + PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 33 + 34 + USE_WORKERS: false 35 + LOG_SQL_QUERIES: ${LOG_SQL_QUERIES:-} 36 + UPLOAD_LIMIT: ${UPLOAD_LIMIT:-} 37 + POSTS_PER_PAGE: ${POSTS_PER_PAGE:-} 38 + LOG_LEVEL: ${LOG_LEVEL:-} 39 + BLOCKLIST_URI: ${BLOCKLIST_URI:-} 40 + FRONTEND_PATH: ${FRONTEND_PATH:-} 41 + DISABLE_REQUIRE_SEND_EMAIL: ${DISABLE_REQUIRE_SEND_EMAIL:-} 42 + BLOCKED_IPS: ${BLOCKED_IPS:-} 43 + REVIEW_REGISTRATIONS: ${REVIEW_REGISTRATIONS:-} 44 + IGNORE_BLOCK_HOSTS: ${IGNORE_BLOCK_HOSTS:-} 45 + 46 + FRONTEND_LOGO: ${FRONTEND_LOGO:-} 47 + FRONTEND_API_URL: ${FRONTEND_API_URL:-} 48 + FRONTEND_MEDIA_URL: ${FRONTEND_MEDIA_URL:-} 49 + FRONTEND_CACHE_URL: ${FRONTEND_CACHE_URL:-} 50 + FRONTEND_SHORTEN_POSTS: ${FRONTEND_SHORTEN_POSTS:-} 51 + FRONTEND_DISABLE_PWA: ${FRONTEND_DISABLE_PWA:-} 52 + FRONTEND_MAINTENANCE: ${FRONTEND_MAINTENANCE:-} 53 + depends_on: 54 + db: 55 + condition: service_started 56 + redis: 57 + condition: service_started 58 + frontend: 59 + condition: service_started 60 + migration: 61 + condition: service_completed_successfully 62 + restart: unless-stopped 63 + environment: 64 + - NODE_ENV=production 65 + volumes: 66 + - ./packages/backend/uploads:/wafrn/uploads 67 + - ./packages/backend/cache:/wafrn/cache 68 + - frontend:/wafrn/packages/frontend:ro 69 + 70 + migration: 71 + <<: *default_backend 72 + depends_on: 73 + db: 74 + condition: service_started 75 + redis: 76 + condition: service_started 77 + frontend: 78 + condition: service_started 79 + restart: no 80 + command: "npm exec tsx migrate.ts init-container" 81 + 82 + frontend: 83 + restart: unless-stopped 84 + build: 85 + context: packages/frontend 86 + dockerfile: Dockerfile 87 + args: 88 + DOMAIN_NAME: ${DOMAIN_NAME} 89 + PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 90 + CACHE_DOMAIN: ${CACHE_DOMAIN} 91 + MEDIA_DOMAIN: ${MEDIA_DOMAIN} 92 + ACME_EMAIL: ${ACME_EMAIL} 93 + ports: 94 + - 80:80 95 + - 443:443 96 + volumes: 97 + - "caddy:/data" 98 + - "frontend:/var/www/html/frontend" 99 + - ./packages/backend/uploads:/var/www/html/uploads 100 + 101 + db: 102 + image: postgres:17 103 + restart: unless-stopped 104 + environment: 105 + POSTGRES_USER: ${POSTGRES_USER} 106 + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 107 + POSTGRES_DB: ${POSTGRES_DBNAME} 108 + volumes: 109 + - dbpg:/var/lib/postgresql/data 110 + 111 + adminer: 112 + image: adminer 113 + restart: unless-stopped 114 + 115 + redis: 116 + image: redis:7.2.4 117 + restart: unless-stopped 118 + volumes: 119 + - redis:/data 120 + 121 + pds: 122 + image: ghcr.io/bluesky-social/pds:0.4 123 + restart: unless-stopped 124 + profiles: 125 + - bluesky 126 + environment: 127 + PDS_HOSTNAME: ${PDS_DOMAIN_NAME} 128 + PDS_JWT_SECRET: ${PDS_JWT_SECRET} 129 + PDS_ADMIN_PASSWORD: ${PDS_ADMIN_PASSWORD} 130 + PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX} 131 + PDS_DATA_DIRECTORY: /pds 132 + PDS_BLOBSTORE_DISK_LOCATION: /pds/blocks 133 + PDS_BLOB_UPLOAD_LIMIT: 52428800 134 + PDS_DID_PLC_URL: "https://plc.directory" 135 + PDS_BSKY_APP_VIEW_URL: "https://api.bsky.app" 136 + PDS_BSKY_APP_VIEW_DID: "did:web:api.bsky.app" 137 + PDS_REPORT_SERVICE_URL: "https://mod.bsky.app" 138 + PDS_REPORT_SERVICE_DID: "did:plc:ar7c4by46qjdydhdevvrndac" 139 + PDS_CRAWLERS: "https://bsky.network" 140 + LOG_ENABLED: true 141 + volumes: 142 + - pds:/pds 143 + 144 + pds_worker: 145 + <<: *default_backend 146 + profiles: 147 + - bluesky 148 + command: "npm exec tsx atproto.ts" 149 + 150 + cache: 151 + <<: *default_backend 152 + 153 + workers: 154 + <<: *default_backend 155 + build: 156 + <<: *default_backend_build 157 + args: 158 + <<: *default_backend_build_args 159 + USE_WORKERS: true 160 + deploy: 161 + mode: replicated 162 + replicas: 3 163 + 164 + volumes: 165 + dbpg: 166 + caddy: 167 + pds: 168 + frontend: 169 + redis:
+155
docker-compose.simple.yml
··· 1 + services: 2 + backend: &default_backend 3 + build: 4 + context: packages/backend 5 + dockerfile: Dockerfile 6 + # these args configure private env vars for the backend and public env vars for the frontend 7 + args: 8 + ADMIN_USER: ${ADMIN_USER} 9 + ADMIN_EMAIL: ${ADMIN_EMAIL} 10 + ADMIN_PASSWORD: ${ADMIN_PASSWORD} 11 + JWT_SECRET: ${JWT_SECRET} 12 + DOMAIN_NAME: ${DOMAIN_NAME} 13 + 14 + CACHE_DOMAIN: ${CACHE_DOMAIN} 15 + MEDIA_DOMAIN: ${MEDIA_DOMAIN} 16 + 17 + SMTP_HOST: ${SMTP_HOST} 18 + SMTP_USER: ${SMTP_USER} 19 + SMTP_PORT: ${SMTP_PORT} 20 + SMTP_PASSWORD: ${SMTP_PASSWORD} 21 + SMTP_FROM: ${SMTP_FROM} 22 + 23 + POSTGRES_USER: ${POSTGRES_USER} 24 + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 25 + POSTGRES_DBNAME: ${POSTGRES_DBNAME} 26 + 27 + WEBPUSH_EMAIL: ${WEBPUSH_EMAIL} 28 + WEBPUSH_PRIVATE: ${WEBPUSH_PRIVATE} 29 + WEBPUSH_PUBLIC: ${WEBPUSH_PUBLIC} 30 + 31 + ENABLE_BSKY: ${ENABLE_BSKY} 32 + PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 33 + 34 + USE_WORKERS: ${USE_WORKERS} 35 + LOG_SQL_QUERIES: ${LOG_SQL_QUERIES:-} 36 + UPLOAD_LIMIT: ${UPLOAD_LIMIT:-} 37 + POSTS_PER_PAGE: ${POSTS_PER_PAGE:-} 38 + LOG_LEVEL: ${LOG_LEVEL:-} 39 + BLOCKLIST_URI: ${BLOCKLIST_URI:-} 40 + FRONTEND_PATH: ${FRONTEND_PATH:-} 41 + DISABLE_REQUIRE_SEND_EMAIL: ${DISABLE_REQUIRE_SEND_EMAIL:-} 42 + BLOCKED_IPS: ${BLOCKED_IPS:-} 43 + REVIEW_REGISTRATIONS: ${REVIEW_REGISTRATIONS:-} 44 + IGNORE_BLOCK_HOSTS: ${IGNORE_BLOCK_HOSTS:-} 45 + 46 + FRONTEND_LOGO: ${FRONTEND_LOGO:-} 47 + FRONTEND_API_URL: ${FRONTEND_API_URL:-} 48 + FRONTEND_MEDIA_URL: ${FRONTEND_MEDIA_URL:-} 49 + FRONTEND_CACHE_URL: ${FRONTEND_CACHE_URL:-} 50 + FRONTEND_SHORTEN_POSTS: ${FRONTEND_SHORTEN_POSTS:-} 51 + FRONTEND_DISABLE_PWA: ${FRONTEND_DISABLE_PWA:-} 52 + FRONTEND_MAINTENANCE: ${FRONTEND_MAINTENANCE:-} 53 + depends_on: 54 + db: 55 + condition: service_started 56 + redis: 57 + condition: service_started 58 + frontend: 59 + condition: service_started 60 + migration: 61 + condition: service_completed_successfully 62 + restart: unless-stopped 63 + environment: 64 + - NODE_ENV=production 65 + volumes: 66 + - ./packages/backend/uploads:/wafrn/uploads 67 + - ./packages/backend/cache:/wafrn/cache 68 + - frontend:/wafrn/packages/frontend:ro 69 + 70 + migration: 71 + <<: *default_backend 72 + depends_on: 73 + db: 74 + condition: service_started 75 + redis: 76 + condition: service_started 77 + frontend: 78 + condition: service_started 79 + restart: no 80 + command: "npm exec tsx migrate.ts init-container" 81 + 82 + frontend: 83 + restart: unless-stopped 84 + build: 85 + context: packages/frontend 86 + dockerfile: Dockerfile 87 + args: 88 + DOMAIN_NAME: ${DOMAIN_NAME} 89 + PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 90 + CACHE_DOMAIN: ${CACHE_DOMAIN} 91 + MEDIA_DOMAIN: ${MEDIA_DOMAIN} 92 + ACME_EMAIL: ${ACME_EMAIL} 93 + ports: 94 + - 80:80 95 + - 443:443 96 + volumes: 97 + - "caddy:/data" 98 + - "frontend:/var/www/html/frontend" 99 + - ./packages/backend/uploads:/var/www/html/uploads 100 + 101 + db: 102 + image: postgres:17 103 + restart: unless-stopped 104 + environment: 105 + POSTGRES_USER: ${POSTGRES_USER} 106 + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 107 + POSTGRES_DB: ${POSTGRES_DBNAME} 108 + volumes: 109 + - dbpg:/var/lib/postgresql/data 110 + 111 + adminer: 112 + image: adminer 113 + restart: unless-stopped 114 + 115 + redis: 116 + image: redis:7.2.4 117 + restart: unless-stopped 118 + volumes: 119 + - redis:/data 120 + 121 + pds: 122 + image: ghcr.io/bluesky-social/pds:0.4 123 + restart: unless-stopped 124 + profiles: 125 + - bluesky 126 + environment: 127 + PDS_HOSTNAME: ${PDS_DOMAIN_NAME} 128 + PDS_JWT_SECRET: ${PDS_JWT_SECRET} 129 + PDS_ADMIN_PASSWORD: ${PDS_ADMIN_PASSWORD} 130 + PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX} 131 + PDS_DATA_DIRECTORY: /pds 132 + PDS_BLOBSTORE_DISK_LOCATION: /pds/blocks 133 + PDS_BLOB_UPLOAD_LIMIT: 52428800 134 + PDS_DID_PLC_URL: "https://plc.directory" 135 + PDS_BSKY_APP_VIEW_URL: "https://api.bsky.app" 136 + PDS_BSKY_APP_VIEW_DID: "did:web:api.bsky.app" 137 + PDS_REPORT_SERVICE_URL: "https://mod.bsky.app" 138 + PDS_REPORT_SERVICE_DID: "did:plc:ar7c4by46qjdydhdevvrndac" 139 + PDS_CRAWLERS: "https://bsky.network" 140 + LOG_ENABLED: true 141 + volumes: 142 + - pds:/pds 143 + 144 + pds_worker: 145 + <<: *default_backend 146 + profiles: 147 + - bluesky 148 + command: "npm exec tsx atproto.ts" 149 + 150 + volumes: 151 + dbpg: 152 + caddy: 153 + pds: 154 + frontend: 155 + redis:
-154
docker-compose.yml
··· 1 - services: 2 - backend: &default_backend 3 - build: 4 - context: packages/backend 5 - dockerfile: Dockerfile 6 - # these args configure private env vars for the backend and public env vars for the frontend 7 - args: 8 - ADMIN_USER: ${ADMIN_USER} 9 - ADMIN_EMAIL: ${ADMIN_EMAIL} 10 - ADMIN_PASSWORD: ${ADMIN_PASSWORD} 11 - JWT_SECRET: ${JWT_SECRET} 12 - DOMAIN_NAME: ${DOMAIN_NAME} 13 - 14 - CACHE_DOMAIN: ${CACHE_DOMAIN} 15 - MEDIA_DOMAIN: ${MEDIA_DOMAIN} 16 - 17 - SMTP_HOST: ${SMTP_HOST} 18 - SMTP_USER: ${SMTP_USER} 19 - SMTP_PORT: ${SMTP_PORT} 20 - SMTP_PASSWORD: ${SMTP_PASSWORD} 21 - SMTP_FROM: ${SMTP_FROM} 22 - 23 - POSTGRES_USER: ${POSTGRES_USER} 24 - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 25 - POSTGRES_DBNAME: ${POSTGRES_DBNAME} 26 - 27 - WEBPUSH_EMAIL: ${WEBPUSH_EMAIL} 28 - WEBPUSH_PRIVATE: ${WEBPUSH_PRIVATE} 29 - WEBPUSH_PUBLIC: ${WEBPUSH_PUBLIC} 30 - 31 - ENABLE_BSKY: ${ENABLE_BSKY} 32 - PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 33 - 34 - LOG_SQL_QUERIES: ${LOG_SQL_QUERIES:-} 35 - UPLOAD_LIMIT: ${UPLOAD_LIMIT:-} 36 - POSTS_PER_PAGE: ${POSTS_PER_PAGE:-} 37 - LOG_LEVEL: ${LOG_LEVEL:-} 38 - BLOCKLIST_URI: ${BLOCKLIST_URI:-} 39 - FRONTEND_PATH: ${FRONTEND_PATH:-} 40 - DISABLE_REQUIRE_SEND_EMAIL: ${DISABLE_REQUIRE_SEND_EMAIL:-} 41 - BLOCKED_IPS: ${BLOCKED_IPS:-} 42 - REVIEW_REGISTRATIONS: ${REVIEW_REGISTRATIONS:-} 43 - IGNORE_BLOCK_HOSTS: ${IGNORE_BLOCK_HOSTS:-} 44 - 45 - FRONTEND_LOGO: ${FRONTEND_LOGO:-} 46 - FRONTEND_API_URL: ${FRONTEND_API_URL:-} 47 - FRONTEND_MEDIA_URL: ${FRONTEND_MEDIA_URL:-} 48 - FRONTEND_CACHE_URL: ${FRONTEND_CACHE_URL:-} 49 - FRONTEND_SHORTEN_POSTS: ${FRONTEND_SHORTEN_POSTS:-} 50 - FRONTEND_DISABLE_PWA: ${FRONTEND_DISABLE_PWA:-} 51 - FRONTEND_MAINTENANCE: ${FRONTEND_MAINTENANCE:-} 52 - depends_on: 53 - db: 54 - condition: service_started 55 - redis: 56 - condition: service_started 57 - frontend: 58 - condition: service_started 59 - migration: 60 - condition: service_completed_successfully 61 - restart: unless-stopped 62 - environment: 63 - - NODE_ENV=production 64 - volumes: 65 - - ./packages/backend/uploads:/wafrn/uploads 66 - - ./packages/backend/cache:/wafrn/cache 67 - - frontend:/wafrn/packages/frontend:ro 68 - 69 - migration: 70 - <<: *default_backend 71 - depends_on: 72 - db: 73 - condition: service_started 74 - redis: 75 - condition: service_started 76 - frontend: 77 - condition: service_started 78 - restart: no 79 - command: "npm exec tsx migrate.ts init-container" 80 - 81 - frontend: 82 - restart: unless-stopped 83 - build: 84 - context: packages/frontend 85 - dockerfile: Dockerfile 86 - args: 87 - DOMAIN_NAME: ${DOMAIN_NAME} 88 - PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 89 - CACHE_DOMAIN: ${CACHE_DOMAIN} 90 - MEDIA_DOMAIN: ${MEDIA_DOMAIN} 91 - ACME_EMAIL: ${ACME_EMAIL} 92 - ports: 93 - - 80:80 94 - - 443:443 95 - volumes: 96 - - "caddy:/data" 97 - - "frontend:/var/www/html/frontend" 98 - - ./packages/backend/uploads:/var/www/html/uploads 99 - 100 - db: 101 - image: postgres:17 102 - restart: unless-stopped 103 - environment: 104 - POSTGRES_USER: ${POSTGRES_USER} 105 - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 106 - POSTGRES_DB: ${POSTGRES_DBNAME} 107 - volumes: 108 - - dbpg:/var/lib/postgresql/data 109 - 110 - adminer: 111 - image: adminer 112 - restart: unless-stopped 113 - 114 - redis: 115 - image: redis:7.2.4 116 - restart: unless-stopped 117 - volumes: 118 - - redis:/data 119 - 120 - pds: 121 - image: ghcr.io/bluesky-social/pds:0.4 122 - restart: unless-stopped 123 - profiles: 124 - - bluesky 125 - environment: 126 - PDS_HOSTNAME: ${PDS_DOMAIN_NAME} 127 - PDS_JWT_SECRET: ${PDS_JWT_SECRET} 128 - PDS_ADMIN_PASSWORD: ${PDS_ADMIN_PASSWORD} 129 - PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX} 130 - PDS_DATA_DIRECTORY: /pds 131 - PDS_BLOBSTORE_DISK_LOCATION: /pds/blocks 132 - PDS_BLOB_UPLOAD_LIMIT: 52428800 133 - PDS_DID_PLC_URL: "https://plc.directory" 134 - PDS_BSKY_APP_VIEW_URL: "https://api.bsky.app" 135 - PDS_BSKY_APP_VIEW_DID: "did:web:api.bsky.app" 136 - PDS_REPORT_SERVICE_URL: "https://mod.bsky.app" 137 - PDS_REPORT_SERVICE_DID: "did:plc:ar7c4by46qjdydhdevvrndac" 138 - PDS_CRAWLERS: "https://bsky.network" 139 - LOG_ENABLED: true 140 - volumes: 141 - - pds:/pds 142 - 143 - pds_worker: 144 - <<: *default_backend 145 - profiles: 146 - - bluesky 147 - command: "npm exec tsx atproto.ts" 148 - 149 - volumes: 150 - dbpg: 151 - caddy: 152 - pds: 153 - frontend: 154 - redis:
+10 -1
install/installer.sh
··· 106 106 export MEDIA_DOMAIN=media.${DOMAIN_NAME} 107 107 export ACME_EMAIL=${ADMIN_EMAIL} 108 108 export FRONTEND_MEDIA_URL=https://${MEDIA_DOMAIN} 109 - export FRONTEND_CACHE_URL=https://${CACHE_DOMAIN}/?media= 109 + export FRONTEND_CACHE_URL=https://${CACHE_DOMAIN}/api/cache?media= 110 110 111 111 echo 112 112 echo "-------------------" ··· 149 149 echo "---------------------" 150 150 151 151 source install/env_secret_setup.sh 152 + cp docker-compose.simple.yml docker-compose.yml 152 153 153 154 echo 154 155 echo "--------------------------" ··· 180 181 181 182 cat <<CROND_FILE | sudo tee /etc/cron.d/wafrn-backup 182 183 22 3 * * * $(whoami) $HOME/wafrn/install/manage.sh backup 184 + CROND_FILE 185 + 186 + echo "-------------------------" 187 + echo "Setting up cache cleanups" 188 + echo "-------------------------" 189 + 190 + cat <<CROND_FILE | sudo tee /etc/cron.d/wafrn-cleanup 191 + 22 4 * * * $(whoami) $HOME/wafrn/install/manage.sh clean 183 192 CROND_FILE 184 193 185 194 echo
+6
install/manage.sh
··· 66 66 echo "Please provide a backup directory to restore" 67 67 fi 68 68 ;; 69 + clean) 70 + pushd "$SCRIPT_DIR/.." 71 + rm -f packages/backend/cache/* 72 + popd 73 + ;; 69 74 *) 70 75 echo "Valid options:" 71 76 echo " update: Download latest wafrn from repository, update and restart" 72 77 echo " backup: Create backup of the current wafrn files" 73 78 echo " restore: Restore a specific backup" 79 + echo " clean: Cleans the cache" 74 80 exit 1 75 81 ;; 76 82 esac
+6
packages/backend/Dockerfile
··· 55 55 ARG REVIEW_REGISTRATIONS 56 56 ARG IGNORE_BLOCK_HOSTS 57 57 58 + ARG USE_WORKERS 59 + ARG WORKERS_LOW 60 + ARG WORKERS_MEDIUM 61 + ARG WORKERS_HIGH 62 + 58 63 ARG WEBPUSH_EMAIL 59 64 ARG WEBPUSH_PRIVATE 60 65 ARG WEBPUSH_PUBLIC ··· 75 80 ARG LISTEN_IP=0.0.0.0 76 81 ARG PORT=9000 77 82 ARG LOG_DESTINATION=1 83 + 78 84 79 85 COPY environment.example.ts environment.ts 80 86
+4 -4
packages/backend/environment.example.ts
··· 4 4 logSQLQueries: ${{LOG_SQL_QUERIES:-false}}, 5 5 workers: { 6 6 // if you set this to true, workers will start in the main thread. no need for starting the utils/workers.ts in other tmux tab 7 - mainThread: true, 8 - low: 5, 9 - medium: 10, 10 - high: 100 7 + mainThread: ${{USE_WORKERS:-true}}, 8 + low: ${{WORKERS_LOW:-5}}, 9 + medium: ${{WORKERS_MEDIUM:-10}}, 10 + high: ${{WORKERS_HIGH:-100}} 11 11 }, 12 12 // this was a dev thing. leave to true unless you are doing stuff in local or your media url is yourinstance/uploads (not recomended) 13 13 removeFolderNameFromFileUploads: true,
+1 -2
packages/frontend/Caddyfile.example
··· 19 19 } 20 20 21 21 ${{CACHE_DOMAIN}} { 22 - handle { 23 - rewrite * /api/cache{uri} 22 + handle /api/cache* { 24 23 reverse_proxy backend:9000 25 24 } 26 25 }