From bc9db6caed8983a6175de03b16f98cacb18c4576 Mon Sep 17 00:00:00 2001 From: RATDAD Date: Sun, 15 Feb 2026 15:31:26 -0500 Subject: Added Linkwarden container --- stacks/irm/.gitignore | 3 +++ stacks/irm/compose.yml | 46 ++++++++++++++++++++++++++++++++++ stacks/irm/env.example | 17 +++++++++++++ stacks/irm/run.env.example | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 stacks/irm/.gitignore create mode 100644 stacks/irm/compose.yml create mode 100644 stacks/irm/env.example create mode 100644 stacks/irm/run.env.example diff --git a/stacks/irm/.gitignore b/stacks/irm/.gitignore new file mode 100644 index 0000000..13fed15 --- /dev/null +++ b/stacks/irm/.gitignore @@ -0,0 +1,3 @@ +*.env +data/ +compose.test.yml diff --git a/stacks/irm/compose.yml b/stacks/irm/compose.yml new file mode 100644 index 0000000..0e97160 --- /dev/null +++ b/stacks/irm/compose.yml @@ -0,0 +1,46 @@ +name: ${_STACK_0} # Explicitly name stacks (do not rely on directory name). + +networks: + edge-net: + name: ${_NET_0} + external: true # All networks SHOULD be external in production. + db-net: + name: ${_NET_1} + +volumes: + irm-db: + name: ${_VOLUME_0} + external: true # All volumes SHOULD be external in production. + +services: + irm: + container_name: ${_CONTAINER_0} # Name the containers explicitly. + image: ghcr.io/linkwarden/linkwarden:latest + restart: unless-stopped + env_file: + # NOTE: .compose.env WILL override .env if there are overlapping values. + - .run.env # Runtime ENV + - .env # Compose ENV + networks: + - edge-net + - db-net + expose: + - 3000 + # Github Issue: https://github.com/linkwarden/linkwarden/issues/1153 + extra_hosts: + - "${OIDC_PROVIDER_URL}:${PROXY_IP}" + depends_on: + - irm-db + irm-db: + container_name: ${_CONTAINER_1} # Name the containers explicitly. + image: postgres:16 + restart: unless-stopped + env_file: + - .run.env + - .env + volumes: + - irm-db:/var/lib/postgresql/data + networks: + - db-net + expose: + - 5432 diff --git a/stacks/irm/env.example b/stacks/irm/env.example new file mode 100644 index 0000000..b39f698 --- /dev/null +++ b/stacks/irm/env.example @@ -0,0 +1,17 @@ +# +# +# Stack Compose Variables + +# Namespaces +_STACK_0= + +# Networks +_NET_0= +_NET_1= + +# Volumes +_VOLUME_0= + +# OIDC Provider +OIDC_PROVIDER_URL= +PROXY_IP= diff --git a/stacks/irm/run.env.example b/stacks/irm/run.env.example new file mode 100644 index 0000000..0b05f6b --- /dev/null +++ b/stacks/irm/run.env.example @@ -0,0 +1,62 @@ +# +# +# Stack Runtime Variables +NEXTAUTH_URL= +NEXTAUTH_SECRET= + +POSTGRES_USER= +POSTGRES_PASSWORD= + +DATABASE_URL= + +# Additional Optional Settings +PAGINATION_TAKE_COUNT= +STORAGE_FOLDER= +AUTOSCROLL_TIMEOUT= +NEXT_PUBLIC_DISABLE_REGISTRATION= +NEXT_PUBLIC_CREDENTIALS_ENABLED= +DISABLE_NEW_SSO_USERS= +MAX_LINKS_PER_USER= +ARCHIVE_TAKE_COUNT= +BROWSER_TIMEOUT= +IGNORE_UNAUTHORIZED_CA= +IGNORE_HTTPS_ERRORS= +IGNORE_URL_SIZE_LIMIT= +NEXT_PUBLIC_DEMO= +NEXT_PUBLIC_DEMO_USERNAME= +NEXT_PUBLIC_DEMO_PASSWORD= +NEXT_PUBLIC_ADMIN= +NEXT_PUBLIC_MAX_FILE_BUFFER= +PDF_MAX_BUFFER= +SCREENSHOT_MAX_BUFFER= +READABILITY_MAX_BUFFER= +PREVIEW_MAX_BUFFER= +MONOLITH_MAX_BUFFER= +MONOLITH_CUSTOM_OPTIONS= +IMPORT_LIMIT= +PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH= +PLAYWRIGHT_WS_URL= +MAX_WORKERS= +DISABLE_PRESERVATION= +NEXT_PUBLIC_RSS_POLLING_INTERVAL_MINUTES= +RSS_SUBSCRIPTION_LIMIT_PER_USER= +TEXT_CONTENT_LIMIT= +SEARCH_FILTER_LIMIT= +INDEX_TAKE_COUNT= +MEILI_TIMEOUT= + +# SMTP Settings +NEXT_PUBLIC_EMAIL_PROVIDER= +EMAIL_FROM= +EMAIL_SERVER= +BASE_URL= + +# PDF archive settings +PDF_MARGIN_TOP= +PDF_MARGIN_BOTTOM= + +# SSO settings +NEXT_PUBLIC_AUTHELIA_ENABLED= +AUTHELIA_CLIENT_ID= +AUTHELIA_CLIENT_SECRET= +AUTHELIA_WELLKNOWN_URL= -- cgit v1.2.3-70-g09d2