Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| docker_notes:docker-dokuwiki [2023-05-28 Sun wk21 14:22] – [Nextcloud Container] baumkp | docker_notes:docker-dokuwiki [2026-04-05 Sun wk14 08:01] (current) – [backup wiki data] baumkp | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | {{tag> | + | {{tag> |
| - | ======Docker Containers====== | + | |
| - | =====Reverse Proxy Server===== | + | ======Dokuwiki====== |
| - | I seem to have gotten the Traefik reverse proxy working according to Techno Tim [[https:// | + | =====Main Dokuwiki Page===== |
| - | + | ||
| - | Below is a basic description of the process that aligns with my configuration files. I do this for 2 reasons, both allowing me independence. | + | |
| - | - Sometimes the source information or link are; changed, lost or removed. | + | |
| - | - These note reference my current specific installation. | + | |
| - | + | ||
| - | =====Proxy network to connect them all===== | + | |
| - | These containers all talk via a docker bridge network named proxy, '' | + | |
| - | ====Traefik==== | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | cd / | + | |
| - | sudo mkdir traefik | + | |
| - | sudo chown baumkp: | + | |
| - | cd traefik | + | |
| - | mkdir data | + | |
| - | cd data | + | |
| - | touch acme.json | + | |
| - | chmod 600 acme.json | + | |
| - | touch traefik.yml | + | |
| - | cd ..</ | + | |
| - | My traefik.yml locatation: ''/ | + | |
| - | + | ||
| - | ===create docker network=== | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | touch provider.env</ | + | |
| - | My docker-compose.yml location: ''/ | + | |
| - | //<fc # | + | |
| - | \\ | + | |
| - | ===Generate and Install Godaddy DNS Challenge Data=== | + | |
| - | Sadly Godaddy does not make it as transparent as it should be to access their DNS challenge API. Perhaps because they are focused on their commercial certificate product. It is accessed from their developer portal [[https:// | + | |
| - | <code [enable_line_numbers=" | + | |
| - | GODADDY_API_SECRET=[Your API_SECRET key from Godaddy API]</ | + | |
| - | \\ | + | |
| - | ===Generate and install Basic Authentication Password=== | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | sudo apt install apache2-utils</ | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | NOTE: Replace < | + | |
| - | + | ||
| - | Paste the output in your docker-compose.yml in line (traefik.http.middlewares.traefik-auth.basicauth.users=< | + | |
| - | \\ | + | |
| - | \\ | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | touch config.yml</ | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | ====Portainer==== | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | sudo mkdir portainer | + | |
| - | sudo chown baumkp: | + | |
| - | cd portainer | + | |
| - | touch docker-compose.yml | + | |
| - | mkdir data</ | + | |
| - | My docker-compose.yml location: ''/ | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | + | ||
| - | ====Traefik Routes Config==== | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | nvim config.yml</ | + | |
| - | My config.yml location: ''/ | + | |
| - | <code bash [enable_line_numbers=" | + | |
| - | Folder Structure: | + | |
| - | < | + | |
| - | ├── data | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | └── docker-compose.yml</ | + | |
| - | ====whitelisting==== | + | |
| - | Todo: look at whitelisting in more detail | + | |
| - | * ''/ | + | |
| - | * Can this be defined for each container setup in config.yml? Looks likely. | + | |
| - | * Can this be reliably setup for public access of certain containers? | + | |
| - | * Ensure **no** public access to portainer and traefik dashboards? | + | |
| - | * See reddit dicussion [[https:// | + | |
| - | ====References==== | + | |
| - | *Traefik | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * Smarthome Beginner [[https:// | + | |
| - | * Christian Lempa [[https:// | + | |
| - | * Techno Tim [[https:// | + | |
| - | techno-tim.github.io/ | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | + | ||
| - | *Traefik whitelists | + | |
| - | + | ||
| - | *Nginx Proxy Manager | + | |
| - | * Nginxproxymanager.com [[https:// | + | |
| - | + | ||
| - | + | ||
| - | =====Dokuwiki===== | + | |
| - | ====Main Dokuwiki Page==== | + | |
| The main dokuwiki page [[tech_notes: | The main dokuwiki page [[tech_notes: | ||
| - | ====Dokuwiki Container==== | + | =====Dokuwiki Container===== |
| - | This use the the [[https:// | + | This uses the [[https:// |
| - | Defines web_data volume: | + | ++++Defines web_data volume:| |
| <code bash> | <code bash> | ||
| #Not USED | #Not USED | ||
| Line 110: | Line 14: | ||
| --opt o=bind cloud_data | --opt o=bind cloud_data | ||
| </ | </ | ||
| - | + | ++++ | |
| - | <code yaml>version: " | + | ++++docker.yaml| |
| + | <code yaml>--- | ||
| services: | services: | ||
| dokuwiki: | dokuwiki: | ||
| image: lscr.io/ | image: lscr.io/ | ||
| - | container_name: | + | container_name: |
| environment: | environment: | ||
| - | - PUID=1000 | + | - PUID=33 |
| - | - PGID=1000 | + | - PGID=33 |
| - TZ=Australia/ | - TZ=Australia/ | ||
| volumes: | volumes: | ||
| Line 126: | Line 31: | ||
| # - 443:443 #optional | # - 443:443 #optional | ||
| restart: unless-stopped </ | restart: unless-stopped </ | ||
| - | + | ++++ | |
| - | Todo: | + | ====Todo==== |
| - | * Need to create a local LAN only functional back-up of the wiki in my back-up server so I have a backup in case the main wiki with my configuration notes becomes unavailable. | + | *Need to create a local LAN only functional back-up of the wiki in my back-up server so I have a backup in case the main wiki with my configuration notes becomes unavailable. |
| - | | + | =====Backup===== |
| + | ====backup server==== | ||
| + | This wiki is used to help setup and maintain my home servers / lab, so if the server becomes unavailable it can become difficult to maintain the lab servers. | ||
| + | ===backup wiki data=== | ||
| Some of the following nuances may help when transferring Dokuwiki servers: | Some of the following nuances may help when transferring Dokuwiki servers: | ||
| - | * The dokuwiki image uses the following permanent volume storage, in config/ | + | *The dokuwiki image uses the following permanent volume storage, in config/ |
| - | * conf (basically copy everything from existing to here) | + | *conf (basically copy everything from existing to here) |
| - | * data (basically copy everything from existing to here) | + | *data (basically copy everything from existing to here) |
| - | * inc -> / | + | *inc -> / |
| - | * lib (basically copy everything from existing to here) | + | *lib (basically copy everything from existing to here) |
| - | * vendor -> / | + | *vendor -> / |
| - | The DokuWiki page [[https:// | + | |
| - | After setting up the internal indexes could be messed up. The plugin SearchIndex Manager can be used to recreate these indexes. | + | ++++wiki_to_local.wiki_copy.sh| |
| + | <code bash> | ||
| + | # | ||
| + | # script to copy main wiki to local wiki | ||
| - | =====Nextcloud Container===== | + | #cp flags: -r => recurse (into sub-directories), |
| - | Nextcloud publishes their own Docker container of Nextcloud. | + | |
| - | Nextcloud needs a number of services to run; the main Nextcloud server, a database and Redis. In addition, there needs to be a proxy server or similar to forward on common domain requests to sub-domains as well as handling certificates, | + | #s_d => source directory |
| + | s_d="/ | ||
| - | Refer to Nextcloud' | + | #d_d => destination directory |
| - | * uid: www-data | + | d_d="/mnt/docker_store/wiki/config/dokuwiki/" |
| - | * '' | + | |
| - | * | + | |
| - | ====References==== | + | # |
| - | *docs nextcloud | + | sub_d=" |
| - | * [[https:// | + | rm -r $d_d$sub_d |
| - | *[[https:// | + | cp -rp $s_d$sub_d $d_d$sub_d |
| - | | + | |
| - | *[[https:// | + | |
| - | =====Calibre===== | + | |
| - | ====Calibre==== | + | sub_d=" |
| - | This Docker container is based [[https:// | + | rm -r $d_d$sub_d |
| + | cp -rp $s_d$sub_d $d_d$sub_d | ||
| - | The image is based upon current Ubuntu Long term release. | + | sub_d=" |
| + | rm -r $d_d$sub_d | ||
| + | cp -rp $s_d$sub_d $d_d$sub_d | ||
| - | ++++Calibre docker-compose.yml| | ||
| - | < | ||
| - | version: " | ||
| - | services: | ||
| - | calibre: | ||
| - | image: lscr.io/ | ||
| - | container_name: | ||
| - | security_opt: | ||
| - | - seccomp: | ||
| - | environment: | ||
| - | - PUID=1000 | ||
| - | - PGID=1000 | ||
| - | - TZ=Australia/ | ||
| - | - PASSWORD= #optional | ||
| - | - CLI_ARGS= #optional | ||
| - | volumes: | ||
| - | - / | ||
| - | ports: | ||
| - | - 8088:8080 | ||
| - | - 8089:8081 | ||
| - | restart: unless-stopped | ||
| - | networks: | ||
| - | - proxy | ||
| - | |||
| - | networks: | ||
| - | proxy: | ||
| - | external: true | ||
| </ | </ | ||
| + | To use: '' | ||
| + | ++++ | ||
| - | Notes: | + | The DokuWiki page [[https://www.dokuwiki.org/faq:backup|How to backup DokuWiki?]] has the basic information to backup |
| - | - Example version: "2.1" changes to "3.9" with no problem | + | |
| - | - The log error/warning concerning " | + | |
| - | - To allow shell access added to '' | + | |
| - | tty: true | + | |
| - | stdin_open: true | + | |
| - | command: / | + | |
| - | ++++ | + | After setting up the internal indexes could be messed up. The plugin SearchIndex Manager can be used to recreate these indexes. |
| - | ====Calibre-web==== | + | ====php/php-fpm settings==== |
| + | php /php-fpm overrides are in the config/php directory. | ||
| + | ++++conf/ | ||
| + | <code php>; Edit this file to override php.ini directives and restart the container | ||
| - | This Docker container is based [[https:// | + | date.timezone = Australia/Perth |
| + | upload_max_filesize | ||
| + | post_max_size = 100M | ||
| - | The image is based upon current Ubuntu long term release. | + | ; |
| + | memory_limit = 256M | ||
| + | implicit_flush = off | ||
| + | max_execution_time = 30 | ||
| + | max_input_time = 60 | ||
| + | max_input_vars = 10000 | ||
| + | variables_order = " | ||
| + | register_argc_argv = off | ||
| - | ++++Calibre-web docker-compose.yml| | + | </ |
| - | < | + | ++++ |
| - | version: "3.9" | + | ++++conf/ |
| - | services: | + | < |
| - | calibre-web: | + | |
| - | image: lscr.io/ | + | |
| - | #image: lscr.io/ | + | |
| - | container_name: | + | |
| - | security_opt: | + | |
| - | - seccomp: | + | |
| - | environment: | + | |
| - | - PUID=1000 | + | |
| - | - PGID=1000 | + | |
| - | - TZ=Australia/ | + | |
| - | - DOCKER_MODS=linuxserver/ | + | |
| - | - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional | + | |
| - | volumes: | + | |
| - | - / | + | |
| - | - / | + | |
| - | ports: | + | |
| - | - 8087:8083 | + | |
| - | | + | |
| - | networks: | + | |
| - | - proxy | + | |
| - | networks: | + | ; Pool name |
| - | | + | [www] |
| - | | + | pm.max_children = 50 |
| + | pm.max_spare_servers = 5 | ||
| </ | </ | ||
| - | |||
| - | Notes: | ||
| - | - Example version: " | ||
| - | - The default login / password: admin / admin123 | ||
| - | - The /books direct points to the directory specified for the existing (or new) Calibre library | ||
| - | - The log error/ | ||
| ++++ | ++++ | ||
| - | ====References==== | ||
| - | *Matthias Schoettle [[https:// | ||
| - | *Nextcloud Docs: | ||
| - | *[[https:// | ||
| - | *The [[https:// | ||
| - | *smarthome beginner' | ||
| - | *Reddit[[https:// | ||
| - | *[[https:// | ||
| - | *[[https:// | ||
| - | *[[https:// | ||
| - | *linuxserver.io [[https:// | ||
| - | *Nextcloud [[https:// | ||
| - | *Christain Lempa [[https:// | ||
| - | |||
| - | =====Deluge===== | ||
| - | A torrent application with a web based server. | ||
| - | =====Other Possible Apps/ | + | I noticed a few days after implementing these changes the Wiki response had improved. |
| - | | + | ====Dokuwiki links==== |
| - | *heindall a dashboard application. Low priority..... | + | Dokuwiki defaults to opening all links in the same page. I prefer external links the be opened in a new tab. The option can be set under admin/ |
| - | *[[https://docs.linuxserver.io/general/ | + | |
| - | <- docker_notes: | + | <- docker_notes: |