# Introduction Caddy v2 is the easiest reverse proxy ever! You'll be able to host multiple dockerized applications with one VM and one domain name! I learned from DoTheEvo https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/caddy_v2 but it wasn't as noob friendly for people new to linux or for people who have no idea what to do with their VMs. Please start with the guide below that will take you from A to Z. https://github.com/StarWhiz/docker_deployment_notes/tree/master/initial%20ubuntu%20setup In addition to the application specific guides on DoTheEvo's page I added some of my own! ## Application Specific Deployments #### Seafile https://github.com/StarWhiz/docker_deployment_notes/tree/master/seafile #### Wordpress https://github.com/StarWhiz/docker_deployment_notes/tree/master/wordpress #### Rocket.chat https://github.com/StarWhiz/docker_deployment_notes/tree/master/rocketchat #### Zoneminder https://github.com/StarWhiz/docker_deployment_notes/tree/master/zoneminder #### ShinobiCCTV https://github.com/StarWhiz/docker_deployment_notes/tree/master/shinobi # Quick-References and Notes ## Most Commonly Used Commands ``` docker exec -w /etc/caddy caddy caddy reload ``` Use this command everytime you make changes to Caddyfile. ``` docker exec -t -i CONTAINERNAME /bin/bash docker exec -t -i CONTAINERNAME /bin/sh ``` Commands to enter a container's shell. Use bash first, if that doens't work try sh. ## Most Common Docker Commands ``` docker container ls # list all running containers docker container ls -a # list all containers even stopped ones docker container rm # remove container docker container kill # kill a running container ### While inside app specific folder docker-compose restart # restart docker stack for application docker-compose down # turn off application docker-compose up # turn on application with logs. CTRL+C to exit docker-compose up -d # turn on application without logs and runs in background ``` ## Common lines added to docker-compose.yml files ``` services: exampleapp: ### Commonly Added To Applications container_name: app-name # A container name for Caddyfile to reference to # with reverse-proxy app-name:80 for example restart: unless-stopped # When your VM restarts the docker-container will start automatically ports: - "8080:80" # Usually reverse-proxy will do. Sometimes there are cases where you need ports open. # Here we open port 8080 on the host machine. It maps to port 80 inside the docker container. volumes: - ./folder:/some/pathinsidecontainer/folder # Changes made in ./folder will appear inside the path mentioned ### The Caddy Network networks: default: external: name: caddy_net ``` # Caddy v2 References To prevent automatic HTTPS on Caddy 2, append http:// to your CaddyFile Entries. Example Below. ``` http://subdomain.yourdomain.com { reverse_proxy wordpress:80 } ``` You can reverse proxy to IP Address + Port instead of by container name. ``` subdomain.yourdomain.com { reverse_proxy 192.168.16.5:8080 } ```