-
Notifications
You must be signed in to change notification settings - Fork 404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App Submission: Dockge #1106
Merged
Merged
App Submission: Dockge #1106
Changes from 1 commit
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
bc5bc73
feat: added dockge
FlyinPancake 57cb8d4
fix: add PR number
FlyinPancake 738d05f
fix: description, removed notes
FlyinPancake c370f03
trigger linter
nmfretz 267db36
fix: added dir gitkeeps
FlyinPancake 9fa6e37
fix: save dockge user data
FlyinPancake e880179
Change tagline to reflect official Dockge copywrite
nmfretz a2688ef
Tweak app description
nmfretz 272340e
Modify developer field
nmfretz f8bb4cb
add stacks dir and refactor volume names
nmfretz ed524a8
Change port to 5005 to avoid clash with libreoffice
nmfretz 9ba7516
Merge branch 'getumbrel:master' into master
FlyinPancake 60b1f77
tweak description
nmfretz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
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/dockge/stacks:${APP_DATA_DIR}/data/dockge/stacks | ||
- ${APP_DATA_DIR}/data/docker:/var/run | ||
environment: | ||
DOCKGE_STACKS_DIR: ${APP_DATA_DIR}/data/dockge/stacks | ||
FlyinPancake marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
manifestVersion: 1 | ||
id: dockge | ||
category: developer | ||
name: Dockge | ||
version: "1.4.2" | ||
tagline: Run custom Docker containers on your Umbrel | ||
description: >- | ||
⚠️ Make sure to only use named Docker volumes for your stacks and containers. Data in bind-mounted volumes | ||
will be lost when the Portainer app is restarted or updated. | ||
FlyinPancake marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
⚠️ 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 on your Umbrel. | ||
|
||
🛠️ 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 for your stacks and containers. Data in bind-mounted | ||
volumes will be lost when the Portainer app is restarted or updated. | ||
FlyinPancake marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
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 the Portainer app is restarted or updated. | ||
FlyinPancake marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
4. Web access to containers: Access your custom containers in your browser at umbrel.local:<mapped-port>. 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: 5001 | ||
gallery: | ||
- 1.jpg | ||
- 2.jpg | ||
- 3.jpg | ||
path: "" | ||
defaultUsername: "" | ||
defaultPassword: "" | ||
releaseNotes: >- | ||
FlyinPancake marked this conversation as resolved.
Show resolved
Hide resolved
|
||
🐛 Bug Fixes | ||
|
||
#380 Fixed the startup issue that Dockge is no longer working after restart | ||
#342 Fixed the login placeholder issue (Thanks @cyril59310) | ||
|
||
🦎 Translation Contributions | ||
|
||
#340 #376 #381 Translations update from Kuma Weblate (Thanks @dng-nguyn @401U @Alanimdeo @MrEddX @NexiaMoe @Yirade @Zaid-maker @catfishlty @cyril59310 @gergepalfi @marco-doerig @nazo6 @oplexz @pacoculebras @queeup @stanol @tomeczekstecc) | ||
#344 Added Hungarian (Thanks @gergepalfi) | ||
#377 Added catalan (Thanks @pacoculebras) | ||
#368 Added translate key (Thanks @cyril59310) | ||
|
||
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests. | ||
|
||
developer: Louis Lam (@louislam) | ||
submitter: FlyinPancake | ||
submission: https://github.com/getumbrel/umbrel-apps/pull/10000 | ||
FlyinPancake marked this conversation as resolved.
Show resolved
Hide resolved
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's this IP?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is copied from portainer. That being said, it might be interesting to see if Dockge would clash with Portainer noew
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two host bridges with the same IP reservations and different names, portainer and dockge, it probably will crash. You could use
dind0:10.33.0.1/16
, it is not being used by any other app.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wrong about it, it will not crash but I still think it would be good to have a different ip reservation range for each app.