89 lines
2.8 KiB
Markdown
Raw Normal View History

# TBD
This needs to work with the Dynamic DNS configuration to make sure the hosts
file always has the latest IP address.
# Initial Setup Instructions
How to first begin using this subproject.
2023-07-06 06:50:58 -07:00
1. Move to the directory of this README.
2023-07-06 06:13:26 -07:00
```
$ cd $DOCKER_HOME/Config/ReverseProxy
```
2023-07-06 06:50:58 -07:00
1. Add configuration files to `./config/conf.d/` which are named based on the domains and subdomains they point to.
1. Run the placeholder certificate program.
2023-07-06 06:13:26 -07:00
```
2023-07-06 06:50:58 -07:00
# ./create_placeholder_certs.sh
2023-07-06 06:13:26 -07:00
```
2023-07-06 06:50:58 -07:00
1. Make any personal changes to `./config/nginx.conf`.
1. Build the project.
2023-07-06 06:13:26 -07:00
```
# docker compose build
```
1. Start the project.
2023-07-06 06:13:26 -07:00
```
# docker compose up -d
```
1. Verify it started correctly, no configuration file errors.
2023-07-06 06:13:26 -07:00
```
2023-07-06 06:50:58 -07:00
# docker logs reverseproxy-app-1
# docker logs reverseproxy-certbot-1
2023-07-06 06:13:26 -07:00
```
1. Create the real certificates.
```
# ./create_letsencrypt_certs.sh
```
1. Add a job to crontab for keeping the certs valid.
```
# crontab -e
X Y * * * docker exec reverseproxy-certbot-1 certbot renew
```
2023-07-08 12:26:50 -07:00
## DO NOT
2023-07-08 12:47:26 -07:00
* Edit any configurations or website data inside the container. It is destroyed on each build.
2023-07-08 12:26:50 -07:00
* 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.
2023-07-06 06:50:58 -07:00
## Stop
2023-07-08 12:49:26 -07:00
If the proxy needs turned off either stop or down may be used.
```
# docker compose stop
# docker compose down
```
2023-07-06 06:50:58 -07:00
## Upgrade
2023-07-06 06:13:26 -07:00
Upgrading the containers should be as easy as this:
```
# docker compose down
# docker compose pull
# docker compose build
# docker compose up -d
```
2023-07-06 06:50:58 -07:00
## Update Config
Replace the configuration based on any new, updated, or removed files.
2023-07-08 12:26:50 -07:00
This may be possible to do when the system is up, but the best results have come from going down and back up.
2023-07-06 06:50:58 -07:00
This is essentially an upgrade but there is no pull.
```
# docker compose down
# docker compose build
# docker compose up -d
```
2023-07-08 12:49:26 -07:00
If wanted as a one-line command:
2023-07-06 06:50:58 -07:00
```
# docker compose down && docker compose build && docker compose up -d
```
## Add New Config
1. Modify your `./config/hosts/domain` file and add the resource.
1. Create the `./config/conf.d/fqdn` file as needed, using the resource.
1. (Optional) If the system needs a cert added, run the placeholder script.
1. Restart the project based on Update Config above.
1. (Optional) Now you may run the letsencrypt script for a real certificate.
1. (Optional) Run another Update Config to make sure the certs are loaded.
1. Done! If set up correctly the site should be live.