Some checks failed
Publish nx-webmail Image / publish (push) Has been cancelled
62 lines
1.7 KiB
Markdown
62 lines
1.7 KiB
Markdown
# Standalone Webmail (Docker-ready)
|
|
|
|
## Local setup
|
|
|
|
1. Install dependencies:
|
|
npm install
|
|
2. Run dev mode (Vite + API):
|
|
npm run dev
|
|
3. Open:
|
|
http://localhost:5173
|
|
|
|
## Docker (standalone)
|
|
|
|
1. Copy env file:
|
|
cp .env.example .env
|
|
2. Build + run:
|
|
docker compose up --build -d
|
|
3. Open:
|
|
http://localhost:3001
|
|
|
|
## Publish image for Umbrel
|
|
|
|
Umbrel installation is most reliable when your app uses a prebuilt image from a registry.
|
|
|
|
1. Recommended: use the GitHub Action `.github/workflows/publish-nx-webmail-image.yml`.
|
|
2. The workflow reads `version` from `nx-webmail/umbrel-app.yml` and publishes:
|
|
- `ghcr.io/weektab/nx-webmail:<version>`
|
|
- `ghcr.io/weektab/nx-webmail:latest`
|
|
3. Manual fallback:
|
|
docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/weektab/nx-webmail:1.0.1 --push .
|
|
|
|
## Umbrel app packaging
|
|
|
|
This repository is prepared for Umbrel app-store usage.
|
|
|
|
1. Keep this app in a folder named exactly like the app ID: `nx-webmail`.
|
|
2. Keep these files in that folder:
|
|
- `docker-compose.yml`
|
|
- `umbrel-app.yml`
|
|
- `Dockerfile`
|
|
- `exports.sh`
|
|
3. Ensure your store root contains `umbrel-app-store.yml`.
|
|
4. Push the app-store repo to a git host reachable from Umbrel.
|
|
|
|
## Install from Umbrel UI
|
|
|
|
1. Open App Store in Umbrel.
|
|
2. Use the menu to add a Community App Store.
|
|
3. Paste your repository URL.
|
|
4. Open your store and install `Webmail`.
|
|
|
|
Notes:
|
|
- Umbrel uses the `app_proxy` service in `docker-compose.yml`.
|
|
- Internal app port is `3001`.
|
|
- `server` uses a prebuilt registry image (`ghcr.io/weektab/nx-webmail:1.0.1`).
|
|
- If your store prefix changes, update `id` in `umbrel-app.yml` and `APP_HOST` in `docker-compose.yml`.
|
|
|
|
## Notes
|
|
|
|
- Frontend calls API on `/api/webmail/*`.
|
|
- IMAP/SMTP credentials are provided by user login in UI.
|