Created
October 2, 2025 18:41
-
-
Save stevedylandev/5a59b209d429733aab8d44ff968cda1e to your computer and use it in GitHub Desktop.
Revisions
-
stevedylandev created this gist
Oct 2, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,129 @@ >[!NOTE] >Make sure `docker-compose` is installed ## Step 1: Create Directory Structure ```bash bashmkdir -p ~/freshrss cd ~/freshrss ``` ## Step 2: Create docker-compose.yml Create a file called `docker-compose.yml`: ```yaml version: "3" services: freshrss: image: freshrss/freshrss:latest container_name: freshrss hostname: freshrss restart: unless-stopped ports: - "3555:80" volumes: - ./data:/var/www/FreshRSS/data - ./extensions:/var/www/FreshRSS/extensions environment: - TZ=America/New_York # Change to your timezone - CRON_MIN=*/30 # Update feeds every 30 minutes ``` ## Step 3: Create systemd Service File Create the systemd service file: ```bash sudo nano /etc/systemd/system/freshrss.service ``` Paste the following content (replace USERNAME with your actual username): ```ini [Unit] Description=FreshRSS Docker Compose Service Requires=docker.service After=docker.service network-online.target Wants=network-online.target [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/home/USERNAME/freshrss ExecStartPre=/usr/bin/docker compose pull ExecStart=/usr/bin/docker compose up -d ExecStop=/usr/bin/docker compose down ExecReload=/usr/bin/docker compose pull ExecReload=/usr/bin/docker compose up -d TimeoutStartSec=0 [Install] WantedBy=multi-user.target ``` ## Step 4: Create Tailscale Funnel Service (Optional) Create a separate service for the Tailscale funnel: ```bash sudo nano /etc/systemd/system/freshrss-tailscale-funnel.service ``` Paste the following: ```ini [Unit] Description=Tailscale Funnel for FreshRSS After=freshrss.service tailscaled.service Requires=freshrss.service tailscaled.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/tailscale funnel 3555 ExecStop=/usr/bin/tailscale funnel --remove 3555 Restart=on-failure [Install] WantedBy=multi-user.target ``` ## Step 5: Enable and Start Services ```bash # Reload systemd to recognize new services sudo systemctl daemon-reload # Enable services to start on boot sudo systemctl enable freshrss.service sudo systemctl enable freshrss-tailscale-funnel.service # Start FreshRSS sudo systemctl start freshrss.service # Start Tailscale funnel sudo systemctl start freshrss-tailscale-funnel.service ``` Step 6: Verify Everything is Running ```bash # Check FreshRSS service status sudo systemctl status freshrss.service # Check Tailscale funnel status sudo systemctl status freshrss-tailscale-funnel.service # Check if container is running docker ps # Check Tailscale funnel status sudo tailscale funnel status ``` ## Useful Management Commands ```bash # Stop services sudo systemctl stop freshrss-tailscale-funnel.service sudo systemctl stop freshrss.service # Restart services sudo systemctl restart freshrss.service sudo systemctl restart freshrss-tailscale-funnel.service # View logs sudo journalctl -u freshrss.service -f sudo journalctl -u freshrss-tailscale-funnel.service -f docker logs -f freshrss # Disable services sudo systemctl disable freshrss-tailscale-funnel.service sudo systemctl disable freshrss.service ```