When DMing me, remember that you have to trust both your server’s admin, as well as mine.

Please use the following age key to encrypt your message (and send me yours, so that I can reply).

age196r7j3hn9dpwsywvlch0ncrvtlx94l2kwyndj733j5vr73dy0vyqa0jgca

  • 3 Posts
  • 98 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle



  • Fascinating country.

    It’s worth more than one visit, just due to its huge diversity. Food is amazing, and it’s very lively. But you have to get used to it, and go with the flow. If you can’t live without all the first world luxuries and/or don’t feel comfortable stepping outside your bubble, don’t go, it’s not the place for you.

    Would I live there? No. And I’m deeply saddened by the political direction it’s heading in. But don’t form opinions about countries you’ve never been to.



  • I don’t self-host a lot of things, but I’d say this is not the easiest I’ve done, just because it involves setting up multiple containers (unlike something like SearXNG). Also thought that I had to set-up an SMTP container, but I got away with not having to do it.

    I used ansible (and pass to store credentials), so this is how I did it (maybe someone can pitch in and tell me what I can improve):

    - name: Deploy Wallabag database
      community.docker.docker_container:
        name: db_wallabag
        image: mariadb
        recreate: true
        state: started
        memory: 500MB
        restart_policy: always
        log_options:
          max-size: "10m"
          max-file: "1"
        env:
          MYSQL_ROOT_PASSWORD: "{{ lookup('community.general.passwordstore', 'self_host_containers/wallabag_mysql_root_password', missing='warn') }}"
        volumes:
        - ~/wallabag/data:/var/lib/mysql
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
          interval: 20s
          timeout: 3s
    
    - name: Deploy Wallabag redis
      community.docker.docker_container:
        name: redis_wallabag
        image: redis:alpine
        recreate: true
        state: started
        memory: 500MB
        restart_policy: always
        log_options:
          max-size: "10m"
          max-file: "1"
        links:
        - "db_wallabag:db_wallabag"
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
          interval: 20s
          timeout: 3s
    
    - name: Deploy Wallabag
      community.docker.docker_container:
        image: wallabag/wallabag:latest
        name: wallabag
        recreate: true
        state: started
        memory: 500MB
        restart_policy: always
        log_options:
          max-size: "10m"
          max-file: "1"
        links:
        - "redis_wallabag:redis_wallabag"
        - "db_wallabag:db_wallabag"
        ports:
        - "80"
        env:
          MYSQL_ROOT_PASSWORD: "{{ lookup('community.general.passwordstore', 'self_host_containers/wallabag_mysql_root_password', missing='warn') }}"
          SYMFONY__ENV__DATABASE_DRIVER: pdo_mysql
          SYMFONY__ENV__DATABASE_HOST: db_wallabag
          SYMFONY__ENV__DATABASE_PORT: "3306"
          SYMFONY__ENV__DATABASE_NAME: db_wallabag
          SYMFONY__ENV__DATABASE_USER: db_wallabag
          SYMFONY__ENV__DATABASE_PASSWORD: "{{ lookup('community.general.passwordstore', 'self_host_containers/wallabag_symfony_env_database_password', missing='warn') }}"
          SYMFONY__ENV__DATABASE_CHARSET: utf8mb4
          SYMFONY__ENV__DATABASE_TABLE_PREFIX: "wallabag_"
          SYMFONY__ENV__MAILER_DSN: smtp://127.0.0.1
          SYMFONY__ENV__FROM_EMAIL: wallabag@example.com
          SYMFONY__ENV__DOMAIN_NAME: 
          SYMFONY__ENV__SERVER_NAME: 
        volumes:
        - ~/wallabag/images:/var/www/wallabag/web/assets/images
        - ~/wallabag/data:/var/www/wallabag/data
        healthcheck:
          test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost"]
          interval: 1m
          timeout: 3s
    
    
    

    Then I set up caddy for the reverse proxy

    - name: Upload Caddyfile
      ansible.builtin.copy:
        src: ./upload_files/Caddyfile
        dest: ~/Caddyfile
    
    - name: Deploy caddy
      community.docker.docker_container:
        image: caddy:2
        name: caddy
        user: "1000:1000"
        recreate: true
        state: started
        memory: 500MB
        restart_policy: always
        log_options:
          max-size: "10m"
          max-file: "1"
        links:
        - "wallabag:wallabag"
        ports:
        - "80:80"
        - "443:443"
        volumes:
        - ~/Caddyfile:/etc/caddy/Caddyfile
        - ~/caddy_data:/data
        - ~/caddy_config:/config
    

    And this is the Caddyfile

    my.url.com {
        reverse_proxy wallabag:80
    }
    

    Finally, you then have to login with user:wallabag and password:wallabag and change them in the webUI. I changed the “wallabag” user to my user and set a new password.