You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Tai c1a370d93f Change folder name for putty keys tutorial 3 years ago
cloud-commander Added 4 applications 3 years ago
freepbx-asterisk Added 4 applications 3 years ago
initial ubuntu setup Change folder name for putty keys tutorial 3 years ago
pureftpd added pureftpd 3 years ago
qbit-windscribe Added 4 applications 3 years ago
rocketchat updated readmes to include contents of files referenced 4 years ago
seafile webDaV update for seafile 4 years ago
shinobi Updated FTP fix for ReoLink Cameras in ShinobiCCTV 3 years ago
unifi-controller Added 4 applications 3 years ago
wordpress updated readmes to include contents of files referenced 4 years ago
zoneminder fixed docker-compose.yml for zoneminder 4 years ago
.gitattributes Initial commit 4 years ago
README.md Update README.md 3 years ago

README.md

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, but their guide assumes you already installed docker and docker-compose. From my A-Z guide... you be handheld from the beginning. In addition to the app specific guides on DoTheEvo's page I also added some of my own!

Anyways please start with the A-Z Guide guide below which will take you from base Ubuntu 20.04 to having docker, docker-compose, caddy v2 installed.

A to Z Guide (Start Here)

https://github.com/StarWhiz/docker_deployment_notes/tree/master/initial%20ubuntu%20setup

After you finish the A-Z guide. You can then follow application specific guides from me below. Or from DoTheEvo for other apps.

Application Specific Deployment Guides

FreePBX+Asterisk
PureFTPd
qBit+windscribe
Rocket.chat
Seafile
Ubiquiti UniFi Controller
Wordpress
Zoneminder

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.

Commonly used Docker Specific 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
docker system prune     # Remove all unused docker: containers, images, networks and volumes to free up space
docker container prune  # Similar to system prune but only targets containers.

### 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
docker-compose pull     # update application

Commonly added lines added to app specific 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
	  
### Example .env variables in docker-compose.yml
${VARIABLE_A}

### Example variable in .env
VARIABLE_A=My_SQL_PASSWORD

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
}