Commit 48e3bd
2026-01-29 17:58:28 Freedom: Init| /dev/null .. monica.md | |
| @@ 0,0 1,130 @@ | |
| + | # Monica |
| + | |
| + | ```yaml |
| + | version: "3.9" |
| + | |
| + | services: |
| + | certbot: |
| + | image: certbot/certbot:latest |
| + | container_name: certbot |
| + | volumes: |
| + | - ./certbot/www:/var/www/certbot |
| + | - ./certbot/conf:/etc/letsencrypt |
| + | |
| + | nginx: |
| + | image: nginx:alpine |
| + | container_name: nginx |
| + | restart: unless-stopped |
| + | depends_on: |
| + | - freshrss |
| + | - wallabag |
| + | ports: |
| + | - "80:80" |
| + | - "443:443" |
| + | volumes: |
| + | - ./nginx/conf.d:/etc/nginx/conf.d:ro |
| + | - ./certbot/www:/var/www/certbot:ro |
| + | - ./certbot/conf:/etc/letsencrypt:ro |
| + | |
| + | postgres: |
| + | image: postgres:16 |
| + | container_name: postgres |
| + | restart: unless-stopped |
| + | environment: |
| + | POSTGRES_USER: postgres |
| + | POSTGRES_PASSWORD: change_this_admin_password |
| + | volumes: |
| + | - ./postgres_data:/var/lib/postgresql/data |
| + | - ./initdb:/docker-entrypoint-initdb.d |
| + | ports: |
| + | - "5432:5432" |
| + | |
| + | freshrss: |
| + | image: freshrss/freshrss:latest |
| + | container_name: freshrss |
| + | restart: unless-stopped |
| + | depends_on: |
| + | - postgres |
| + | environment: |
| + | TZ: UTC |
| + | volumes: |
| + | - ./freshrss_data:/var/www/FreshRSS/data |
| + | - ./freshrss_extensions:/var/www/FreshRSS/extensions |
| + | |
| + | wallabag: |
| + | image: wallabag/wallabag:latest |
| + | container_name: wallabag |
| + | restart: unless-stopped |
| + | depends_on: |
| + | - postgres |
| + | environment: |
| + | SYMFONY__ENV__DOMAIN_NAME: "https://wallabag.manxialiu.org" |
| + | SYMFONY__ENV__DATABASE_DRIVER: pdo_pgsql |
| + | SYMFONY__ENV__DATABASE_HOST: postgres |
| + | SYMFONY__ENV__DATABASE_PORT: 5432 |
| + | SYMFONY__ENV__DATABASE_NAME: wallabag |
| + | SYMFONY__ENV__DATABASE_USER: wallabag |
| + | SYMFONY__ENV__DATABASE_PASSWORD: change_this_wallabag_password |
| + | volumes: |
| + | - ./wallabag/data:/var/www/wallabag/data |
| + | - ./wallabag/images:/var/www/wallabag/web/assets/images |
| + | monica: |
| + | image: monica:latest |
| + | container_name: monica |
| + | restart: unless-stopped |
| + | depends_on: |
| + | - monica_db |
| + | environment: |
| + | APP_ENV: production |
| + | APP_KEY: base64:SvGCjh161p/00kgNrZm7E8xhotqnpX94d46w8cnkM0g= |
| + | APP_DEBUG: "false" |
| + | APP_URL: https://monica.manxialiu.org |
| + | DB_CONNECTION: mysql |
| + | DB_HOST: monica_db |
| + | DB_PORT: 3306 |
| + | DB_DATABASE: monica |
| + | DB_USERNAME: monica |
| + | DB_PASSWORD: change_this_monica_password |
| + | TRUSTED_PROXIES: "**" |
| + | volumes: |
| + | - ./monica_data:/var/www/html/storage |
| + | monica_db: |
| + | image: mariadb:11 |
| + | container_name: monica_db |
| + | restart: unless-stopped |
| + | environment: |
| + | MARIADB_DATABASE: monica |
| + | MARIADB_USER: monica |
| + | MARIADB_PASSWORD: change_this_monica_password |
| + | MARIADB_ROOT_PASSWORD: change_this_root_password |
| + | volumes: |
| + | - ./monica_db_data:/var/lib/mysql |
| + | ``` |
| + | |
| + | ## Data migration |
| + | |
| + | |
| + | ## Copy the Monica application data |
| + | |
| + | * Copy the Monica volume from the old server to the new server. |
| + | * Use the volume path from your Docker Compose file. |
| + | |
| + | ## Dump the Monica database (old server) |
| + | |
| + | Dump the database using the credentials from the old server: |
| + | |
| + | ```bash |
| + | docker compose exec db mariadb-dump -u monica -psecret monica > monica.sql |
| + | ``` |
| + | |
| + | Copy `monica.sql` to the new server. |
| + | {% endstep %} |
| + | |
| + | {% step %} |
| + | ## Restore the Monica database (new server) |
| + | |
| + | Import into the new database container (for example, `monica_db`): |
| + | |
| + | ```bash |
| + | docker compose exec -T monica_db mariadb -u monica -pchange_this_monica_password monica < monica.sql |
| + | ``` |
