Blame
| 934c51 | Freedom | 2026-01-29 17:57:16 | 1 | # Freshrss |
| 2 | ||||
| 3 | ||||
| 4 | ```yaml |
|||
| 5 | version: "3.9" |
|||
| 6 | ||||
| 7 | services: |
|||
| 8 | certbot: |
|||
| 9 | image: certbot/certbot:latest |
|||
| 10 | container_name: certbot |
|||
| 11 | volumes: |
|||
| 12 | - ./certbot/www:/var/www/certbot |
|||
| 13 | - ./certbot/conf:/etc/letsencrypt |
|||
| 14 | ||||
| 15 | nginx: |
|||
| 16 | image: nginx:alpine |
|||
| 17 | container_name: nginx |
|||
| 18 | restart: unless-stopped |
|||
| 19 | depends_on: |
|||
| 20 | - freshrss |
|||
| 21 | - wallabag |
|||
| 22 | ports: |
|||
| 23 | - "80:80" |
|||
| 24 | - "443:443" |
|||
| 25 | volumes: |
|||
| 26 | - ./nginx/conf.d:/etc/nginx/conf.d:ro |
|||
| 27 | - ./certbot/www:/var/www/certbot:ro |
|||
| 28 | - ./certbot/conf:/etc/letsencrypt:ro |
|||
| 29 | ||||
| 30 | postgres: |
|||
| 31 | image: postgres:16 |
|||
| 32 | container_name: postgres |
|||
| 33 | restart: unless-stopped |
|||
| 34 | environment: |
|||
| 35 | POSTGRES_USER: postgres |
|||
| 36 | POSTGRES_PASSWORD: change_this_admin_password |
|||
| 37 | volumes: |
|||
| 38 | - ./postgres_data:/var/lib/postgresql/data |
|||
| 39 | - ./initdb:/docker-entrypoint-initdb.d |
|||
| 40 | ports: |
|||
| 41 | - "5432:5432" |
|||
| 42 | ||||
| 43 | freshrss: |
|||
| 44 | image: freshrss/freshrss:latest |
|||
| 45 | container_name: freshrss |
|||
| 46 | restart: unless-stopped |
|||
| 47 | depends_on: |
|||
| 48 | - postgres |
|||
| 49 | environment: |
|||
| 50 | TZ: UTC |
|||
| 51 | volumes: |
|||
| 52 | - ./freshrss_data:/var/www/FreshRSS/data |
|||
| 53 | - ./freshrss_extensions:/var/www/FreshRSS/extensions |
|||
| 54 | ``` |
|||
| 55 | ||||
| 56 | ## Data migration |
|||
| 57 | ||||
| 58 | Manual approach: |
|||
| 59 | ||||
| 60 | * In FreshRSS, go to **Subscription management → Import / Export**. |
|||
| 61 | * Export: |
|||
| 62 | * Feed list |
|||
| 63 | * Labeled articles |
|||
| 64 | * Favorites |
|||
| 65 | * Save the exported file. |
|||
| 66 | * On the new server, import the file in the same screen. |
|||
| 67 | ||||
| 68 | Limitation: user accounts are not migrated. TODO: migrate via database. |
