====== Docker ======
Just some scrambled mess on how I sometimes have docker deployed in my environment.
===== Deploy in Ubu 18.04 =====
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04
===== Portainer =====
[[https://www.portainer.io/installation/|Portainer]] is love, Portainer is life.
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
--name=portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
==== Upgrading ====
docker pull portainer/portainer-ce:latest
docker stop portainer; docker rm portainer
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
--name=portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
===== Dashboard =====
https://github.com/phntxx/dashboard
docker run -d --restart unless-stopped \
-v /dockerMisc/dashboard:/app/data \
-p 8081:8080 \
--name dashboard \
phntxx/dashboard
===== Smokeping =====
docker create \
--name=smokeping \
-e TZ=America/New_York \
-p 8990:80 \
-v /dockerMisc/smokePing/config:/config \
-v /dockerMisc/smokePing/data:/data \
--restart unless-stopped \
linuxserver/smokeping
[[docker:smokeping_targetstargets|config/Targets]]
===== Whoogle =====
[[https://github.com/benbusby/whoogle-search|Whoogle Search]]
docker run -d --restart unless-stopped \
-p 5000:5080 \
--name Whoogle \
benbusby/whoogle-search:latest
===== Caddy =====
docker run \
--publish 5000:5000 \
--restart=always --detach \
--name whoogle \
benbusby/whoogle-search:latest
===== HasteBin =====
https://hub.docker.com/r/rlister/hastebin
docker create \
--name=hastebin \
--restart=always \
-p 7777:7777 \
-e STORAGE_TYPE=file \
-v /dockerMisc/hastebin:/app/data \
rlister/hastebin
===== OpenVPN AS =====
https://hub.docker.com/r/linuxserver/openvpn-as
docker create \
--name=openvpn-as \
--cap-add=NET_ADMIN \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/New_York \
-e INTERFACE=enp3s0 \
-p 943:943 \
-p 9443:9443 \
-p 1194:1194/udp \
-v /dockerMisc/openvpn-as:/config \
--restart unless-stopped \
linuxserver/openvpn-as
===== Guacamole =====
oznu/guacamole has been deprecated. Follow this instead:
[[https://www.linode.com/docs/guides/installing-apache-guacamole-through-docker/]]
First, deploy a base guac with no special extensions/whatever:
docker run \
-p 8080:8080 \
-v /dockerMisc/guac/config:/config \
oznu/guacamole
Log in with the default credentials (guacadmin/guacadmin). If they don't take, restart the container. Create a new user, and disable or delete guacadmin. Stop the container.
Copy guacamole-auth-duo-1.0.0.jar from extensions-available to extensions.
Add the following to guacamole.properties:
# duo config
duo-api-hostname: api-fdafdasa.duosecurity.com
duo-integration-key: fdafdas
duo-secret-key: fdafdas
duo-application-key: fdafdsfds
Generate the duo-application-key with pwgen 40 (must be at least 40 chars!)
Edit the container's environment parameters to include EXTENSIONS=auth-duo (e.g. use duplicate/edit in portainer).
Make sure the proper hostname(s) are added to the "approved application hostnames" section for the app in Duo!
===== Wordpress =====
TBD
===== Pastebin =====
TBD
===== Plex? =====
I didn't think I would, yet here we are...
https://hub.docker.com/r/linuxserver/plex
Samba mount in fstab:
//jennay/media /smb cifs credentials=/home/john/.smbcreds,iocharset=utf8,vers=2.1,sec=ntlmssp 0 0
.smbcreds
username=derp
password=derp123
Do it! (Claim Key: https://www.plex.tv/claim/)
docker create \
--name=Plex \
--net=host \
-e PUID=1000 \
-e PGID=1000 \
-e VERSION=docker \
-e UMASK_SET=022 \
-e PLEX_CLAIM=keyGoesHere \
-v /dockerMisc/plex/config:/config \
-v /smb/TV:/tv \
-v /smb/Movies:/movies \
--restart unless-stopped \
linuxserver/plex
===== Dokuwiki =====
https://hub.docker.com/r/linuxserver/dokuwiki
===== Transmission =====
docker create \
--name=Transmission \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/New_York \
-p 9091:9091 \
-p 51413:51413 \
-p 51413:51413/udp \
-v /dockerMisc/transmission/config:/config \
-v /dockerMisc/transmission/downloads:/downloads \
-v /dockerMisc/transmission/watch:/watch \
--restart unless-stopped \
linuxserver/transmission
In settings.json, set "rpc-host-whitelist-enabled": false
===== Nextcloud =====
docker run -d \
--name=nextcloud \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/New_York \
-p 443:443 \
-v /dockerMisc/nextcloud:/config \
-v /mnt/data/nextcloud:/data \
--restart unless-stopped \
lscr.io/linuxserver/nextcloud
===== Time Machine / AFP =====
https://hub.docker.com/r/mbentley/timemachine
docker run -d --restart=always \
--net=host \
--name timemachine \
-e CUSTOM_AFP_CONF="false" \
-e CUSTOM_USER="false" \
-e LOG_LEVEL="info" \
-e MIMIC_MODEL="TimeCapsule6,106" \
-e TM_USERNAME="timemachine" \
-e TM_GROUPNAME="timemachine" \
-e PASSWORD="timemachine" \
-e SET_PERMISSIONS="false" \
-e SHARE_NAME="TimeMachine" \
-e VOLUME_SIZE_LIMIT="0" \
-v /twotbraid/timemachine:/opt/timemachine \
-v timemachine-netatalk:/var/netatalk \
-v timemachine-logs:/var/log/supervisor \
mbentley/timemachine
===== PORTS =====
{{ :docker:docker_port_mapping.png?&700 |}}