Chad f205dbfcd5
Add DNS Server, Many Other Fixes/Enhancements (#12)
* Add 443 just in case since docker ps is showing it as active.

* Add two new projects.

* Add pre-testing content for DNS.

* Initial untested stab at the GitLab config.

* This project uses build, image name is not needed.

* Cleanup, untested guess at how to handle the variables in the pipe section.

* Filled out all files for DNS. Ready for testing.

* This seems to work, Ubuntu is hoarding port 53 though even though local services are shut off.

* `dnsmasq` container is testing successfully now.

* Don't allow a run unless the config files exist.

* Correct the crontab entry so that $RANDOM works correctly.

* Certs were not being saved by LetsEncrypt for Nginx correctly. Should be working now.

* Do not allow disabled folders into Git.

* Do not allow disabled folders into Git, 2.

* Do not allow disabled folders into Git, 3.

* Do not allow disabled folders into Git, 4.

* Do not allow disabled folders into Git, 5.

* Do not allow disabled folders into Git, 6.

* Don't add logs from anywhere.

* Add ping and dig to Nextcloud container for troubleshooting.

* Fix tabs.

* Make unfinished suffix consistent.

* Clean whitespace.

* Multiple names for a single IP address.

* Add 2nd example domain from hosts file.

* Add caching program Redis for Nextcloud.

* Add REDIS_HOST variable for automatic setup through config/redis.config.php.

* Upgrade to compose version 3.

* Move OnlyOffice to Nextcloud area.

* Change container name.

* Add container_name to all compose services.

* Shorten names for Nextcloud services.

* Comment possible OO fixes while trying to get container to use DNS.

* Remove OnlyOffice setting tests.

* Do not commit .env files, only their examples.

* Move OnlyOffice to be its own configuration again. Add sourcing of DNS settings so that local traffic routes correctly.

* Fix source file, BASH_SROUCE did not work without the shebang. Also fix bug for when it sees `..` and assumes current directory.

* dns.env file did not work out, env_file: element not being read before dns: element. Using folder-specific .env files instead, seems to be loaded before dns: element. Also move other values to the env files for better password privacy.

* Keep commands for cleaning up environment in one file.

* Update examples.

* Fix cd moving the user to the file's directory.

* Add note for user to set up the env file.

* Replace README files by unhiding the example files.

* Still need to specify the variables in the environment: element.

* Add header variable.

* Place host above database.

* Fix "JWS" typo.

* Do not use the HEADER parameter.

* Add vim to fix packages.

* Forget about the manual DNS servers for a minute, ensure host is set up properly first. Ubuntu is happy but Debian is not.

* Try using the host network explicitly.

* Temporarily give up on having Nextcloud server see local OnlyOffice server. Works when they are different machines but need them together.
2023-08-21 22:07:46 +00:00
..

Initial Setup Instructions

How to first begin using this subproject.

  1. Move to the directory of this README.
    $ cd $DOCKER_HOME/Config/ReverseProxy
    
  2. Add configuration files to ./config/conf.d/ which are named based on the domains and subdomains they point to.
  3. Run the placeholder certificate program.
    # ./create_placeholder_certs.sh
    
  4. Make any personal changes to ./config/nginx.conf.
  5. Build the project.
    # docker compose build
    
  6. Start the project.
    # docker compose up -d
    
  7. Verify it started correctly, no configuration file errors.
    # docker logs reverseproxy-app-1
    # docker logs reverseproxy-certbot-1
    
  8. Create the real certificates.
    # ./create_letsencrypt_certs.sh
    
  9. Add a job to crontab for keeping the certs valid.
    # crontab -e
    X Y * * * docker exec reverseproxy-certbot-1 certbot renew
    

DO NOT

  • Edit any configurations or website data inside the container. It is destroyed on each build.
    • Instead, modify the files in ./config/ then use the Update Config commands below.
  • Install any additional software inside of the container. It will not persist a down and up.
    • Instead, add what is needed to the docker-compose.yml or Dockerfile to be done on each rebuild.
    • Alternatively write a script such as ../Nextcloud/fixes.ksh which is run after every upgrade.

Other Commands

Tasks which will also likely come up while using this subproject.

Stop

If the proxy needs turned off either stop or down may be used.

# docker compose stop
# docker compose down

Upgrade

Upgrading the containers should be as easy as this:

# docker compose down
# docker compose pull
# docker compose build
# docker compose up -d

Update Config

Replace the configuration based on any new, updated, or removed files. This may be possible to do when the system is up, but the best results have come from going down and back up. This is essentially an upgrade but there is no pull.

# docker compose down
# docker compose build
# docker compose up -d

If wanted as a one-line command:

# docker compose down && docker compose build && docker compose up -d