services: pastebox: image: ghcr.io/kmw0410/pastebox:latest container_name: pastebox restart: unless-stopped stop_grace_period: 40s ports: - "8080:8080" environment: # Optional. Set this only if you want to override Alpine repositories inside the container. # Example: "https://example-mirror.com/alpine" MIRROR_URL: "https://mirror5.krfoss.org/alpine" # The default time zone is Asia/Seoul (GMT +9). Change it as needed. # TZ: "Asia/Seoul" # Match these to the host user that should own ./data, for example UID: "1000" and GID: "1000". # UID: "1000" # GID: "1000" LANGUAGE: "en" # value: ko/en # Optional Discord webhook URL for paste create/clone/delete notifications. # DISCORD_WEBHOOK: "https://discord.com/api/webhooks/..." # Paste content storage backend. Use "local" for /paste-data files or "mysql" for an external MySQL/MariaDB database. STORAGE_BACKEND: "local" # value: local/mysql # Required only when STORAGE_BACKEND=mysql. Keep parseTime=true and utf8mb4 options for compatibility. # MYSQL_DSN: "pastebox:pastebox@tcp(mysql.example.com:3306)/pastebox?parseTime=true&charset=utf8mb4&collation=utf8mb4_unicode_ci" # Optional zstd compression level for DB-mode paste content. Default is 3. # DB_ZSTD_LEVEL: "3" # When STORAGE_BACKEND=mysql, migrate existing local paste files into MySQL on startup. # MIGRATE_LOCAL_PASTES: "true" # When STORAGE_BACKEND=mysql, migrate the existing SQLite admin account into MySQL on startup. # MIGRATE_SQLITE_ADMIN_ACCOUNTS: "true" # Default admin reset token. Change this value before production use. ADMIN_RESET_TOKEN: "41345bfc5d9ab9e6e4c8d2e1b90e129af9cc472286954beeddb51c9b2beaf1d5b4eb3f10ae872ba1db4ef7e3f6fe1b474cdbe3aeeee9323a5b9ca99edf224883" volumes: - ./data:/paste-data healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/healthz || exit 1"] interval: 30s timeout: 3s retries: 3 start_period: 10s