Browse Source
Co-authored-by: FlyinPancake <FlyinPancake@users.noreply.github.com> Co-authored-by: highghlow <132668972+highghlow@users.noreply.github.com> Co-authored-by: nmfretz <nmfretz@gmail.com> Co-authored-by: joaovictor.local <me@joaovictor.email>main
committed by
GitHub
6 changed files with 135 additions and 0 deletions
@ -0,0 +1,37 @@ |
|||||
|
version: "3.7" |
||||
|
|
||||
|
services: |
||||
|
app_proxy: |
||||
|
environment: |
||||
|
APP_HOST: dockge_dockge_1 |
||||
|
APP_PORT: 5001 |
||||
|
|
||||
|
docker: |
||||
|
image: docker:24.0.5-dind@sha256:3c6e4dca7a63c9a32a4e00da40461ce067f255987ccc9721cf18ffa087bcd1ef |
||||
|
privileged: true |
||||
|
network_mode: host |
||||
|
stop_grace_period: 1m |
||||
|
restart: on-failure |
||||
|
environment: |
||||
|
DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16" |
||||
|
entrypoint: /entrypoint.sh |
||||
|
command: > |
||||
|
dockerd |
||||
|
--bridge dind0 |
||||
|
--data-root /data/data |
||||
|
--exec-root /data/exec |
||||
|
--host unix:///data/docker.sock |
||||
|
--pidfile /data/docker.pid |
||||
|
volumes: |
||||
|
- ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh |
||||
|
- ${APP_DATA_DIR}/data/docker:/data |
||||
|
|
||||
|
dockge: |
||||
|
image: louislam/dockge:1.4.2@sha256:ec889251baff476366783bc4a092aaa08c601f377537a0f30fb922754edcd9b7 |
||||
|
restart: on-failure |
||||
|
volumes: |
||||
|
- ${APP_DATA_DIR}/data/docker:/var/run |
||||
|
- ${APP_DATA_DIR}/data/dockge-data:/app/data |
||||
|
- ${APP_DATA_DIR}/data/dockge-stacks:/opt/stacks |
||||
|
environment: |
||||
|
DOCKGE_STACKS_DIR: /opt/stacks |
@ -0,0 +1,47 @@ |
|||||
|
#!/bin/sh |
||||
|
|
||||
|
# This hack can be removed if https://github.com/docker-library/docker/pull/444 gets merged. |
||||
|
|
||||
|
# Remove docker pidfile if it exists to ensure Docker can start up after a bad shutdown |
||||
|
pidfile="/var/run/docker.pid" |
||||
|
if [[ -f "${pidfile}" ]] |
||||
|
then |
||||
|
rm -f "${pidfile}" |
||||
|
fi |
||||
|
|
||||
|
# Use nftables as the backend for iptables |
||||
|
for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate |
||||
|
do |
||||
|
ln -sf /sbin/xtables-nft-multi /sbin/$command |
||||
|
done |
||||
|
|
||||
|
# Ensure that a bridge exists with the given name |
||||
|
ensure_bridge_exists() { |
||||
|
local name="${1}" |
||||
|
local ip_range="${2}" |
||||
|
|
||||
|
# Check if the bridge already exists |
||||
|
if ip link show "${name}" &>/dev/null |
||||
|
then |
||||
|
echo "Bridge '${name}' already exists. Skipping creation." |
||||
|
ip addr show "${name}" |
||||
|
return |
||||
|
fi |
||||
|
|
||||
|
echo "Bridge '${name}' does not exist. Creating..." |
||||
|
ip link add "${name}" type bridge |
||||
|
ip addr add "${ip_range}" dev "${name}" |
||||
|
ip link set "${name}" up |
||||
|
|
||||
|
echo "Bridge '${name}' is now up with IP range '${ip_range}'." |
||||
|
ip addr show "${name}" |
||||
|
} |
||||
|
|
||||
|
if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]] |
||||
|
then |
||||
|
bridge="${DOCKER_ENSURE_BRIDGE%%:*}" |
||||
|
ip_range="${DOCKER_ENSURE_BRIDGE#*:}" |
||||
|
ensure_bridge_exists "${bridge}" "${ip_range}" |
||||
|
fi |
||||
|
|
||||
|
exec dockerd-entrypoint.sh $@ |
@ -0,0 +1,51 @@ |
|||||
|
manifestVersion: 1 |
||||
|
id: dockge |
||||
|
category: developer |
||||
|
name: Dockge |
||||
|
version: "1.4.2" |
||||
|
tagline: Easy to use Docker Compose manager |
||||
|
description: >- |
||||
|
⚠️ Make sure to only use named Docker volumes in your Compose files. Data in bind-mounted volumes |
||||
|
will be lost when Dockge is restarted or updated. |
||||
|
|
||||
|
|
||||
|
⚠️ Watch out for port conflicts between your custom Docker containers and your umbrelOS apps. |
||||
|
|
||||
|
|
||||
|
Dockge is a fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager to run custom Docker |
||||
|
containers. It has an interactive editor for compose files and can convert docker run commands into docker-compose.yaml. |
||||
|
|
||||
|
|
||||
|
🛠️ Dockge on Umbrel is for power users, follow these best practices to avoid issues: |
||||
|
|
||||
|
|
||||
|
1. Data persistence: Make sure to only used named Docker volumes in your Compose files. Data in bind-mounted |
||||
|
volumes will be lost when Dockge is restarted or updated. |
||||
|
|
||||
|
|
||||
|
2. Port management: Watch out for potential port conflicts between your custom containers and umbrelOS' service containers, |
||||
|
apps you have installed from the Umbrel App Store or Community App Stores, and any apps you go to install in the future. |
||||
|
|
||||
|
|
||||
|
3. Container restart policy: Set your containers to "unless-stopped" or "always" restart policies. This will allow your containers |
||||
|
to restart automatically when Dockge is restarted or updated. |
||||
|
|
||||
|
|
||||
|
4. Web access to containers: Access your custom containers in your browser at umbrel.local:PORT_NUMBER. For example, for a container |
||||
|
with a web UI running on port 4545, navigate to umbrel.local:4545 to access it. |
||||
|
website: https://dockge.kuma.pet |
||||
|
dependencies: [] |
||||
|
repo: https://github.com/louislam/dockge |
||||
|
support: https://github.com/louislam/dockge/issues |
||||
|
port: 5005 |
||||
|
gallery: |
||||
|
- 1.jpg |
||||
|
- 2.jpg |
||||
|
- 3.jpg |
||||
|
path: "" |
||||
|
defaultUsername: "" |
||||
|
defaultPassword: "" |
||||
|
releaseNotes: "" |
||||
|
developer: Louis Lam |
||||
|
submitter: FlyinPancake |
||||
|
submission: https://github.com/getumbrel/umbrel-apps/pull/1106 |
Loading…
Reference in new issue