From 754080083d10e0bfa633a45f01d9a04123969a48 Mon Sep 17 00:00:00 2001 From: RATDAD Date: Sun, 15 Feb 2026 15:35:12 -0500 Subject: Added FreshRSS container --- stacks/news/.gitignore | 8 +++++++ stacks/news/compose.yml | 56 +++++++++++++++++++++++++++++++++++++++++++++ stacks/news/env.example | 25 ++++++++++++++++++++ stacks/news/run.env.example | 34 +++++++++++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 stacks/news/.gitignore create mode 100644 stacks/news/compose.yml create mode 100644 stacks/news/env.example create mode 100644 stacks/news/run.env.example diff --git a/stacks/news/.gitignore b/stacks/news/.gitignore new file mode 100644 index 0000000..c581994 --- /dev/null +++ b/stacks/news/.gitignore @@ -0,0 +1,8 @@ +*.env +data/ +db/ +extensions/ +certs/ +compose.test.yml +config.custom.php + diff --git a/stacks/news/compose.yml b/stacks/news/compose.yml new file mode 100644 index 0000000..e9963f5 --- /dev/null +++ b/stacks/news/compose.yml @@ -0,0 +1,56 @@ +## Template compose used for each stack. +name: ${_STACK_0} # Explicit project name (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: + rss-data: + name: ${VOLUME_0} + external: true + rss-db: + name: ${_VOLUME_1} + external: true # All volumes SHOULD be external in production. + +services: + rss: + container_name: ${_CONTAINER_0} # Name the containers explicitly. + image: freshrss/freshrss:latest + restart: unless-stopped + env_file: + # NOTE: .compose.env WILL override .env if there are overlapping values. + - .run.env # Runtime ENV + - .env # Compose ENV + volumes: + - rss-data:/var/www/FreshRSS/data + extra_hosts: + - "${OIDC_PROVIDER_DOMAIN}:${PROXY_IP}" + networks: + - edge-net + - db-net + expose: + - 80 + healthcheck: + test: ["CMD", "cli/health.php"] + timeout: 10s + start_period: 60s + start_interval: 11s + interval: 75s + retries: 3 + rss-db: + container_name: ${_CONTAINER_1} # Name the containers explicitly. + image: postgres:18 + restart: unless-stopped + env_file: + - run.env # Runtime ENV + - .env # Compose ENV + volumes: + - rss-db:/var/lib/postgresql + networks: + - db-net + expose: + - 5432 diff --git a/stacks/news/env.example b/stacks/news/env.example new file mode 100644 index 0000000..7781c65 --- /dev/null +++ b/stacks/news/env.example @@ -0,0 +1,25 @@ +# +# +# Stack Compose Variables + +# Namespaces +_STACK_0= + +# Containers +_CONTAINER_0= +_CONTAINER_1= + +# Network +_NET_0= +_NET_1= + +# Volumes +_VOLUME_0= +_VOLUME_1= + +# UID/GID +UID= +GID= + +OIDC_PROVIDER_DOMAIN= +PROXY_IP= diff --git a/stacks/news/run.env.example b/stacks/news/run.env.example new file mode 100644 index 0000000..6ccba27 --- /dev/null +++ b/stacks/news/run.env.example @@ -0,0 +1,34 @@ +# +# +# Stack Runtime Variables +ADMIN_EMAIL= + +# General Settings +# Formatted +BASE_URL=https://sub.main.tld/subdir(?) +SERVER_DNS= +TZ= +CRON_MIN=2,32 +FRESHRSS_ENV=production +LISTEN=0.0.0.0:80 +# Put the reverse proxy's docker ip range here--v +TRUSTED_PROXY= + +# Database +POSTGRES_USER= +POSTGRES_PASSWORD= +# Put the name of the docker container for the database here--v +DB_HOST= + +# OIDC Provider +OIDC_ENABLED=0 +OIDC_PROVIDER_METADATA_URL= +OIDC_CLIENT_ID= +OIDC_CLIENT_SECRET= +OIDC_CLIENT_CRYPTO_KEY= +OIDC_REMOTE_USER_CLAIM=preferred_username +OIDC_SCOPES=openid groups email profile +OIDC_X_FORWARDED_HEADERS=X-Forwarded-Host X-Forwarded-Port X-Forwarded-Proto +# OIDC_SESSION_INACTIVITY_TIMEOUT= +# OIDC_SESSION_MAX_DURATION= +# OIDC_SESSION_TYPE= -- cgit v1.2.3-70-g09d2