Update build workflow and README for Docker image configuration and registry logins

This commit is contained in:
Florian Weber 2025-06-27 14:19:04 +02:00
parent 36c616d665
commit f803541ba0
Signed by: f.weber
GPG Key ID: A1C85EB19014A2D3
2 changed files with 162 additions and 4 deletions

View File

@ -24,12 +24,24 @@ jobs:
token: ${{ secrets.GH_TOKEN }} token: ${{ secrets.GH_TOKEN }}
path: homebrewery path: homebrewery
- name: Login to GitHub Container Registry - name: Login to Gitea Container Registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: git.morlana.online registry: git.morlana.online
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.DOCKER_TOKEN }} password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to Morlana Container Registry
uses: docker/login-action@v3
with:
username: ${{ secrets.MORLANA_DOCKER_USER }}
password: ${{ secrets.MORLANA_DOCKER_PASSWORD }}
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
@ -55,3 +67,19 @@ jobs:
tags: | tags: |
git.morlana.online/${{ github.repository_owner }}/homebrewery:latest git.morlana.online/${{ github.repository_owner }}/homebrewery:latest
git.morlana.online/${{ github.repository_owner }}/homebrewery:${{ github.event.release.tag_name }} git.morlana.online/${{ github.repository_owner }}/homebrewery:${{ github.event.release.tag_name }}
reg.morlana.net/homebrewery:latest
reg.morlana.net/homebrewery:${{ github.event.release.tag_name }}
kosmos367/homebrewery:latest
kosmos367/homebrewery:${{ github.event.release.tag_name }}
update-description:
runs-on: ubuntu-24.04
steps:
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: peterevans/dockerhub-description

136
README.md
View File

@ -1,4 +1,134 @@
# homebrewery-docker # Homebrewery (Unofficial) Docker Image
Create authentic looking D&D homebrews using only markdown. An unofficial, prebuilt Docker image for [NaturalCrits Homebrewery](https://github.com/naturalcrit/homebrewery), with sensible defaults and full configuration via environment variables. Published to Docker Hub and mirrored on my Gitea instance to avoid Docker Hub pull-rate limits.
This is an automatic build of the docker image from official repository at: https://github.com/naturalcrit/homebrewery
---
## Features
- **Prebuilt image** based on `node:22-alpine`
- Auto-fetches and builds the latest Homebrewery release (tags mirror upstream)
- Configure entirely via **environment variables**—no need to mount a JSON file
- Optional mounting of custom images/fonts
---
## Image Names & Tags
- **Docker Hub**: `kosmos367/homebrewery`
- **Gitea Registry**: `git.morlana.online/f.weber/homebrewery`
- **Tags**: Mirror upstream releases (e.g. `v3.14.3`, `v3.15.0`, …). Updated twice daily.
---
## Environment Variables
| Variable | Default | Description |
| ---------------------- | ---------------------------------------- | -------------------------------- |
| `NODE_ENV` | `docker` | Node environment |
| `PORT` | `8000` | Port on which Homebrewery serves |
| `HB_HOST` | `homebrewery.local.naturalcrit.com:8000` | Hostname for generated config |
| `HB_NATURALCRIT_URL` | `local.naturalcrit.com:8010` | Base URL of NaturalCrit site |
| `HB_SECRET` | `secret` | Session secret |
| `HB_ENABLE_V3` | `true` | Enable v3 editor mode |
| `HB_ENABLE_THEMES` | `true` | Enable theming support |
| `HB_PUBLIC_URL` | `https://homebrewery.naturalcrit.com` | Public URL for links |
| `HB_LOCAL_ENVIRONMENT` | `docker` | Local environment tag |
| `HB_DB_URI` | `mongodb://mongodb/homebrewery` | MongoDB connection URI |
| `HB_IMAGES` | `null` | Path for static images |
| `HB_FONTS` | `null` | Path for static fonts |
> **Tip**: If you prefer, mount your own JSON config at `/usr/src/app/config/docker.json` instead of using env vars.
---
## Exposed Ports & Volumes
- **Port**: `8000/tcp` (or as set via `PORT`)
- **Optional volumes**:
- `/usr/src/app/images` (use with `HB_IMAGES`)
- `/usr/src/app/fonts` (use with `HB_FONTS`)
- Data persistence is handled via MongoDB.
---
## Example: `docker-compose.yml`
```yaml
version: "3.8"
services:
homebrewery:
image: kosmos367/homebrewery:latest
container_name: homebrewery
environment:
HB_HOST: "homebrewery.example.com"
HB_SECRET: "your-secret-key"
HB_PUBLIC_URL: "https://homebrewery.example.com"
HB_DB_URI: "mongodb://mongo:27017/homebrewery"
# Optional mounts:
# HB_IMAGES: '/usr/src/app/images'
# HB_FONTS: '/usr/src/app/fonts'
ports:
- "8000:8000"
# Optional volumes for customization
#volumes:
# - images-data:/usr/src/app/images
# - fonts-data:/usr/src/app/fonts
depends_on:
- mongo
mongo:
image: mongo:latest
container_name: homebrewery-db
volumes:
- mongo-data:/data/db
volumes:
mongo-data:
# Optional volumes for customization
# images-data:
# fonts-data:
```
---
## Repository & Registry Links
- **Gitea repository** (Dockerfile, CI/CD, etc.):
[https://git.morlana.online/f.weber/homebrewery-docker](https://git.morlana.online/f.weber/homebrewery-docker)
- **Gitea Docker registry**:
[https://git.morlana.online/f.weber/homebrewery-docker/packages](https://git.morlana.online/f.weber/homebrewery-docker/packages)
- **Upstream Homebrewery**:
[https://github.com/naturalcrit/homebrewery](https://github.com/naturalcrit/homebrewery)
**Pull example for all available registries:**
```bash
docker pull kosmos367/homebrewery
docker pull git.morlana.online/f.weber/homebrewery
docker pull reg.morlana.net/homebrewery
```
---
## Maintainer
Florian Weber [kosmos@morlana.net](mailto:kosmos@morlana.net)
---
## License
This Docker wrapper is released under the **MIT License**, same as the original Homebrewery project.
---
> ⚠️ **Disclaimer**
> This is **not** an official Homebrewery image. It is provided “as-is” with no affiliation to NaturalCrit. Use at your own risk.
---
Feel free to suggest tweaks or additional sections—happy to refine!