Files
MrBlake f36d6be511
CI / php-store (push) Waiting to run
CI / python-components (push) Waiting to run
feat: add NetBox plugin store
2026-08-24 20:51:25 +02:00

66 lines
3.2 KiB
YAML

name: mrblake-netbox-plugin-store
services:
store:
build:
context: ./store
image: mrblake/netbox-plugin-store:local
restart: unless-stopped
ports:
- "${STORE_BIND_ADDRESS:-127.0.0.1}:${STORE_HTTP_PORT:-8080}:80"
environment:
APP_ENV: "${APP_ENV:-production}"
STORE_PUBLIC_URL: "${STORE_PUBLIC_URL:-http://localhost:8080}"
STORE_COOKIE_SECURE: "${STORE_COOKIE_SECURE:-false}"
STORE_TRUST_PROXY: "${STORE_TRUST_PROXY:-false}"
STORE_TRUSTED_PROXY_IPS: "${STORE_TRUSTED_PROXY_IPS:-127.0.0.1,::1}"
STORE_SESSION_NAME: "${STORE_SESSION_NAME:-netbox_plugin_store}"
STORE_ADMIN_USERNAME: "${STORE_ADMIN_USERNAME:-}"
STORE_ADMIN_PASSWORD_HASH: "${STORE_ADMIN_PASSWORD_HASH:-}"
STORE_SESSION_SECRET: "${STORE_SESSION_SECRET:-}"
STORE_ADMIN_SESSION_TTL: "${STORE_ADMIN_SESSION_TTL:-28800}"
STORE_LOGIN_MAX_ATTEMPTS: "${STORE_LOGIN_MAX_ATTEMPTS:-5}"
STORE_LOGIN_WINDOW_SECONDS: "${STORE_LOGIN_WINDOW_SECONDS:-900}"
STORE_DB_DRIVER: "${STORE_DB_DRIVER:-json}"
STORE_JSON_PATH: "/var/www/html/data/store.json"
STORE_ALLOWED_SOURCE_HOSTS: "${STORE_ALLOWED_SOURCE_HOSTS:-git.mrblake.cc,github.com,api.github.com,*.github.com,*.githubusercontent.com}"
STORE_ALLOW_PRIVATE_NETWORKS: "${STORE_ALLOW_PRIVATE_NETWORKS:-false}"
STORE_HTTP_TIMEOUT_SECONDS: "${STORE_HTTP_TIMEOUT_SECONDS:-20}"
STORE_MAX_METADATA_BYTES: "${STORE_MAX_METADATA_BYTES:-2097152}"
STORE_MAX_ARTIFACT_BYTES: "${STORE_MAX_ARTIFACT_BYTES:-536870912}"
STORE_USER_AGENT: "${STORE_USER_AGENT:-MrBlake-NetBox-Plugin-Store/1.0}"
STORE_DEFAULT_PROVIDER: "${STORE_DEFAULT_PROVIDER:-forgejo}"
STORE_DEFAULT_SOURCE_NAME: "${STORE_DEFAULT_SOURCE_NAME:-MrBlake Forgejo}"
STORE_DEFAULT_SOURCE_SLUG: "${STORE_DEFAULT_SOURCE_SLUG:-mrblake-forgejo}"
STORE_DEFAULT_BASE_URL: "${STORE_DEFAULT_BASE_URL:-https://git.mrblake.cc}"
STORE_DEFAULT_API_URL: "${STORE_DEFAULT_API_URL:-https://git.mrblake.cc/api/v1}"
STORE_DEFAULT_OWNER: "${STORE_DEFAULT_OWNER:-MrBlake}"
STORE_DEFAULT_OWNER_KIND: "${STORE_DEFAULT_OWNER_KIND:-user}"
STORE_DEFAULT_TOPIC: "${STORE_DEFAULT_TOPIC:-netbox-plugin}"
STORE_DEFAULT_TOKEN_ENV: "${STORE_DEFAULT_TOKEN_ENV:-GITEA_TOKEN}"
GITEA_TOKEN: "${GITEA_TOKEN:-}"
GITHUB_TOKEN: "${GITHUB_TOKEN:-}"
STORE_SCHEDULER_ENABLED: "${STORE_SCHEDULER_ENABLED:-true}"
STORE_SYNC_INTERVAL_SECONDS: "${STORE_SYNC_INTERVAL_SECONDS:-900}"
STORE_SYNC_MAX_SECONDS: "${STORE_SYNC_MAX_SECONDS:-900}"
STORE_SYNC_MAX_REQUESTS: "${STORE_SYNC_MAX_REQUESTS:-2500}"
STORE_SYNC_MAX_BYTES: "${STORE_SYNC_MAX_BYTES:-1073741824}"
STORE_SYNC_MAX_REPOSITORIES: "${STORE_SYNC_MAX_REPOSITORIES:-2000}"
STORE_SYNC_MAX_RELEASES: "${STORE_SYNC_MAX_RELEASES:-1000}"
STORE_PAGE_SIZE: "${STORE_PAGE_SIZE:-12}"
STORE_API_PAGE_SIZE: "${STORE_API_PAGE_SIZE:-50}"
STORE_API_MAX_PAGE_SIZE: "${STORE_API_MAX_PAGE_SIZE:-100}"
volumes:
- store-data:/var/www/html/data
security_opt:
- no-new-privileges:true
networks:
- store-internal
volumes:
store-data:
networks:
store-internal:
driver: bridge