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.

135 lines
3.3 KiB
Markdown

### Minimum File structure
```
/home/
└── ~/
└── docker/
└── freepbx/
├── .env
├── docker-compose.yml
```
3 years ago
### Add to Caddyfile (from ~/docker/caddy)
Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile.
```
freepbx.yourdomain.com {
reverse_proxy freepbx:80
3 years ago
}
```
Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile.
### .env
You should change the passwords here.
```
DB_HOST=freepbx-db
DB_PORT=3306
DB_NAME=asterisk
DB_USER=asterisk
3 years ago
DB_PASS=examplepass1
DB_ROOT_PASS=examplepass2
SITE_URL=pbx.yourdomain.com
```
3 years ago
### docker-compose.yml
```
version: '2'
services:
freepbx-app:
image: tiredofit/freepbx
3 years ago
container_name: freepbx
restart: unless-stopped
ports:
#### If you aren't using a reverse proxy
#- 80:80
#### If you want SSL Support and not using a reverse proxy
#- 443:443
- 5060:5060/udp
- 5160:5160/udp
- 18000-18100:18000-18100/udp
#### Flash Operator Panel
- 4445:4445
volumes:
- ./certs:/certs
- ./data:/data
- ./logs:/var/log
- ./data/www:/var/www/html
### Only Enable this option below if you set DB_EMBEDDED=TRUE
#- ./db:/var/lib/mysql
### You can drop custom files overtop of the image if you have made modifications to modules/css/whatever - Use with care
#- ./assets/custom:/assets/custom
environment:
3 years ago
- VIRTUAL_HOST=${SITE_URL}
- VIRTUAL_NETWORK=caddy_net
- VIRTUAL_PORT=80
### - LETSENCRYPT_HOST=hostname.example.com
### - LETSENCRYPT_EMAIL=email@example.com
- ZABBIX_HOSTNAME=freepbx
- RTP_START=18000
- RTP_FINISH=18100
## Use for External MySQL Server
- DB_EMBEDDED=FALSE
### These are only necessary if DB_EMBEDDED=FALSE
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
### These final lines are for Fail2ban. If you don't want, comment and also add ENABLE_FAIL2BAN=FALSE to your environment
cap_add:
- NET_ADMIN
privileged: true
freepbx-db:
image: tiredofit/mariadb
3 years ago
container_name: freepbx-db
restart: unless-stopped
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASS}
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASS}
freepbx-db-backup:
image: tiredofit/db-backup
3 years ago
container_name: freepbx-db-backup
restart: unless-stopped
links:
- freepbx-db
volumes:
- ./dbbackup:/backup
environment:
- ZABBIX_HOSTNAME=freepbx-db-backup
- DB_HOST=${DB_HOST}
- DB_TYPE=mariadb
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- DB_DUMP_FREQ=1440
- DB_DUMP_BEGIN=0000
- DB_CLEANUP_TIME=8640
- COMPRESSION=BZ
- MD5=TRUE
networks:
default:
external:
name: caddy_net
```
3 years ago
### docker-compose up -d
After you created the .env and docker-compose.yml in this directory... do a `docker-compose up -d` to turn on the container. Then after it is finish booting...
Visit https://freepbx.yourdomain.com/admin/ to edit config. (Add /admin to the domain you choose in Caddy)