You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: clarify container app two-phase install process
Explain that .deb packages are small metadata-only packages and
that the actual Docker image pull happens on first service start,
which is the slow part of installation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/architecture/package-system.md
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@ Each container app package contains:
30
30
└── {app-name}.png # Icon for store and dashboard
31
31
```
32
32
33
+
The package is intentionally lightweight — it does **not** contain the Docker image itself. The actual container image is pulled from the registry when the service starts for the first time. This keeps packages small (a few kilobytes) and ensures you always get the exact image version specified in the compose file.
34
+
33
35
The systemd service runs `docker compose up -d` on start and `docker compose down` on stop.
34
36
35
37
## App Definition Format
@@ -151,10 +153,13 @@ The CI/CD pipeline builds packages on push to main, publishes to unstable, and p
151
153
152
154
```
153
155
apt install marine-grafana-container
154
-
→ dpkg extracts files
156
+
→ dpkg extracts files (seconds — package is small)
155
157
→ postinst creates data directories, generates secrets
156
158
→ systemd starts grafana-container.service
157
-
→ docker compose up -d
159
+
→ prestart.sh computes runtime configuration
160
+
→ docker compose up
161
+
→ Docker pulls image layers from registry (may take minutes on first install)
Copy file name to clipboardExpand all lines: docs/user-guide/installing-apps.md
+14-7Lines changed: 14 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,20 @@ HaLOS provides a container app store — a curated collection of applications pa
6
6
7
7
## How it works
8
8
9
-
Each container app is a standard Debian package (`.deb`) that contains:
9
+
Installing a container app is a two-phase process:
10
10
11
-
- A Docker Compose file defining the container(s)
12
-
- A systemd service that manages the container lifecycle
13
-
- Docker labels for Traefik routing and Homarr dashboard integration
11
+
1.**Package install (fast)** — HaLOS downloads and installs a small package that describes how to run the app. This takes only a few seconds.
14
12
15
-
When you install an app, `apt` downloads the package, `systemd` starts the container, Traefik picks up the routing labels, and the app appears on your [dashboard](dashboard.md) — all automatically.
13
+
2.**Image pull (slow)** — The app's actual software is then downloaded from the internet. This can take anywhere from 30 seconds to several minutes depending on the app size and your network speed.
14
+
15
+
The app only becomes accessible after the download completes and the app starts. It then appears on your [dashboard](dashboard.md) automatically.
16
+
17
+
??? info "Under the hood"
18
+
The package is a standard Debian `.deb` containing a Docker Compose file
19
+
(which defines the containers to run), a systemd service (which manages
20
+
the app lifecycle), and metadata for routing and dashboard integration.
21
+
The heavy download in phase 2 is Docker pulling the container image
22
+
layers from a registry.
16
23
17
24
## Browsing the store
18
25
@@ -26,8 +33,8 @@ The store shows apps from all configured stores. The Marine variant adds a dedic
26
33
27
34
1. Click on an app to view its details (description, version, dependencies).
28
35
2. Click **Install**.
29
-
3.Wait for the package to download and the container to start (typically 30–60 seconds).
30
-
4.The app appears on your Homarr dashboard and is accessible via its subdomain URL.
36
+
3.The package installs quickly, but the app needs time to pull its Docker image on first start. Small apps are ready within a minute; larger ones (e.g., Grafana, OpenCPN) may take several minutes on slower connections.
37
+
4.Once the image pull completes, the app appears on your Homarr dashboard and is accessible via its subdomain URL.
0 commit comments