A self-hosted, anti-social RSS reader.
docker pull stringerrss/stringer
docker run -d --name stringer -p 80:80 --restart always stringerrss/stringer:latest
podman run -d --name stringer -p 80:80 --restart always stringerrss/stringer:latest
skopeo inspect docker://docker.io/stringerrss/stringer:latest
oras pull stringerrss/stringer:latest
docker compose up -d
version: '3'
services:
stringer-setup:
image: stringerrss/stringer:latest
container_name: stringer-setup
restart: no
env_file: .env
volumes:
- ./.env:/app/.env
entrypoint: ["ruby"]
command: ["/app/docker/init_or_update_env.rb"]
stringer-postgres:
image: postgres:18-alpine
container_name: stringer-postgres
restart: always
depends_on:
stringer-setup:
condition: service_completed_successfully
networks:
- stringer-network
volumes:
- ./.env:/app/.env
# Postgres 18+ images expect a single mount here and store the database
# in a version-named subdirectory. See docs/Docker.md for upgrade steps.
- /srv/stringer/data:/var/lib/postgresql
env_file: .env
stringer:
image: stringerrss/stringer:latest
container_name: stringer
build: .
depends_on:
stringer-postgres:
condition: service_started
stringer-setup:
condition: service_completed_successfully
restart: always
ports:
- 80:8080
networks:
- stringer-network
volumes:
- ./.env:/app/.env
env_file: .env
networks:
stringer-network:
external: false
name: stringer-network