Browse Source

Resolve "Ensuring restart directive for docker services"

merge-requests/16/merge
Steven Foerster 6 years ago
parent
commit
b6fb86c50c
  1. 32
      README.md
  2. 11
      base.yml
  3. 4
      extra/jitsi-meet.yml

32
README.md

@ -40,6 +40,19 @@ Mistborn protects your data in a variety of ways:
- The Mistborn firewall blocks unsolicited incoming internet packets - The Mistborn firewall blocks unsolicited incoming internet packets
- Pi-hole running on Mistborn blocks outgoing internet requests to configurable blocked domains (ads, malicious/phishing domains, etc.) - Pi-hole running on Mistborn blocks outgoing internet requests to configurable blocked domains (ads, malicious/phishing domains, etc.)
# Gateways
I was getting frustrated at being forced to choose between being connected to my VPN and using streaming services that I have paid for.
![Netflix blocked](https://gitlab.com/cyber5k/public/-/raw/master/graphics/netflix_blocked.png)
*Netflix blocking my connections that it sees coming from a DigitalOcean droplet*
In Mistborn, Gateways are upstream from the VPN server so connections to third-party services (e.g. Netflix, Hulu, etc.) will appear to be coming from the public IP address of the Gateway. I setup a Gateway at home, then all VPN profiles created with this Gateway will apear to be coming from my house and are not blocked. No port-forwarding required (assuming Mistborn is publicly accessible).
![Mistborn Gateway Diagram](https://gitlab.com/cyber5k/public/-/raw/master/graphics/gateway_network.png)
The Gateway adds an extra network hop. DNS is still resolved in Mistborn so pihole is still blocking ads.
# Installation # Installation
Mistborn is regularly tested on Ubuntu 18.04 LTS (DigitalOcean droplet with 2 GB RAM). It has also been successfully used on Debian Buster and Raspbian Buster systems (though not regularly tested). Mistborn is regularly tested on Ubuntu 18.04 LTS (DigitalOcean droplet with 2 GB RAM). It has also been successfully used on Debian Buster and Raspbian Buster systems (though not regularly tested).
@ -147,6 +160,25 @@ Mistborn uses the following domains (that can be reached by all Wireguard client
| OnlyOffice | onlyoffice.mistborn | Off | | OnlyOffice | onlyoffice.mistborn | Off |
| Jitsi | jitsi.mistborn | Off | | Jitsi | jitsi.mistborn | Off |
# Gateway Setup
Mistborn will generate the Wireguard configuration script for the Gateway. From a base Ubuntu/Debian/Raspbian operating system the following packages are recommended to be installed beforehand:
## Gateway Requirements
- Wireguard (you can run the Mistborn Wireguard installer: `sudo bash /opt/mistborn/scripts/subinstallers/wireguard.sh`)
- Openresolv (a Wireguard dependency that is installed via the Mistborn Wireguard installer)
- Fail2ban
## Install Gateway Wireguard config file
On Mistborn:
- Click `View Config` on the Gateways tab in Mistborn
- Highlight the config
- Copy (Ctrl-C)
On Gateway:
- Paste the config to `/etc/wireguard/gateway.conf`
- Run `sudo systemctl start wg-quick@gateway`
- Run `sudo systemctl enable wg-quick@gateway`
# Troubleshooting # Troubleshooting
Once you're connected to Wireguard you should see .mistborn domains and the internet should work as expected. Be sure to use http (http://home.mistborn). Wireguard is the encrypted channel so we're not bothering with TLS certs. Here are some things to check if you have issues: Once you're connected to Wireguard you should see .mistborn domains and the internet should work as expected. Be sure to use http (http://home.mistborn). Wireguard is the encrypted channel so we're not bothering with TLS certs. Here are some things to check if you have issues:

11
base.yml

@ -22,6 +22,7 @@ services:
- ../mistborn_volumes/base/media:/mistborn-media - ../mistborn_volumes/base/media:/mistborn-media
- ../mistborn_volumes/base/private_media:/mistborn-private-media - ../mistborn_volumes/base/private_media:/mistborn-private-media
command: /start command: /start
restart: unless-stopped
postgres: postgres:
build: build:
@ -34,6 +35,7 @@ services:
- production_postgres_data_backups:/backups - production_postgres_data_backups:/backups
env_file: env_file:
- ./.envs/.production/.postgres - ./.envs/.production/.postgres
restart: unless-stopped
traefik: traefik:
build: build:
@ -50,10 +52,12 @@ services:
ports: ports:
- "0.0.0.0:80:80/tcp" - "0.0.0.0:80:80/tcp"
- "0.0.0.0:443:443/tcp" - "0.0.0.0:443:443/tcp"
restart: unless-stopped
redis: redis:
image: redis:5.0 image: redis:5.0
container_name: mistborn_production_redis container_name: mistborn_production_redis
restart: unless-stopped
celeryworker: celeryworker:
image: cyber5k/mistborn:latest image: cyber5k/mistborn:latest
@ -76,6 +80,7 @@ services:
- traefik - traefik
- pihole - pihole
command: /start-celeryworker command: /start-celeryworker
restart: unless-stopped
celeryworker-low-priority: celeryworker-low-priority:
image: cyber5k/mistborn:latest image: cyber5k/mistborn:latest
@ -98,6 +103,7 @@ services:
- traefik - traefik
- pihole - pihole
command: /start-celeryworker-low-priority command: /start-celeryworker-low-priority
restart: unless-stopped
celerybeat: celerybeat:
image: cyber5k/mistborn:latest image: cyber5k/mistborn:latest
@ -106,14 +112,19 @@ services:
- ./.envs/.production/.django - ./.envs/.production/.django
- ./.envs/.production/.postgres - ./.envs/.production/.postgres
command: /start-celerybeat command: /start-celerybeat
restart: unless-stopped
flower: flower:
image: cyber5k/mistborn:latest image: cyber5k/mistborn:latest
container_name: mistborn_production_flower container_name: mistborn_production_flower
env_file:
- ./.envs/.production/.django
- ./.envs/.production/.postgres
ports: ports:
- "5555:5555/tcp" - "5555:5555/tcp"
command: /start-flower command: /start-flower
restart: unless-stopped
pihole: pihole:
container_name: mistborn_production_pihole container_name: mistborn_production_pihole

4
extra/jitsi-meet.yml

@ -47,6 +47,7 @@ services:
meet.jitsi: meet.jitsi:
aliases: aliases:
- ${XMPP_DOMAIN} - ${XMPP_DOMAIN}
restart: unless-stopped
# XMPP server # XMPP server
jitsi-prosody: jitsi-prosody:
@ -112,6 +113,7 @@ services:
meet.jitsi: meet.jitsi:
aliases: aliases:
- ${XMPP_SERVER} - ${XMPP_SERVER}
restart: unless-stopped
# Focus component # Focus component
jitsi-jicofo: jitsi-jicofo:
@ -139,6 +141,7 @@ services:
- jitsi-prosody - jitsi-prosody
networks: networks:
meet.jitsi: meet.jitsi:
restart: unless-stopped
# Video bridge # Video bridge
jitsi-jvb: jitsi-jvb:
@ -168,6 +171,7 @@ services:
- jitsi-prosody - jitsi-prosody
networks: networks:
meet.jitsi: meet.jitsi:
restart: unless-stopped
# Custom network so all services can communicate using a FQDN # Custom network so all services can communicate using a FQDN
networks: networks:

Loading…
Cancel
Save