RSS feed reader built with Go.
-
Install dependencies
go mod download
-
Set environment variables
export ENVIRONMENT=development export DB_URL=nyusu.db export PORT=8888
-
Run database migrations
goose -dir sql/schema sqlite3 nyusu.db up
-
Start the server
go run . -
Open in browser
http://localhost:8888
docker build -t nyusu .# Create a volume for persistent database storage
docker volume create nyusu-data
# Run the container
docker run -d \
--name nyusu \
-p 8888:8888 \
-v nyusu-data:/data \
-e ENVIRONMENT=production \
-e PORT=8888 \
-e SCRAPPER_TICK=60 \
ghcr.io/odin-software/nyusu:latestNote: Database migrations run automatically on container startup, so no manual setup is required!
| Variable | Description | Default |
|---|---|---|
DB_URL |
Path to SQLite database file | /data/nyusu.db |
PORT |
Port number for the server | 8888 |
ENVIRONMENT |
Environment mode (development or production) |
development |
SCRAPPER_TICK |
Interval in seconds for RSS feed scraping | 60 |
PRODUCTION_URL |
Production URL for CORS (production only) | https://nyusu.do |
This repository uses GitHub Actions to automatically build and push Docker images to GitHub Container Registry (ghcr.io) on every push to the main branch.
How it works:
- Push code to
mainbranch - GitHub Actions builds the Docker image
- Image is pushed to
ghcr.io/odin-software/nyusu:latest - Watchtower on your self-hosted server automatically pulls and updates the container
Using Watchtower for auto-updates:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--interval 300 \
nyusuThis will check for updates every 5 minutes and automatically restart the container with the new image.