Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
1e13b1f4e8 | |||
e1860a0f4a | |||
d6dce18bb6 | |||
536130d727 | |||
6e5d35cb55 | |||
f803541ba0 | |||
36c616d665 | |||
b708c21085 |
9
.gitea/ISSUE_LICENSE_CHANGED.md
Normal file
9
.gitea/ISSUE_LICENSE_CHANGED.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
title: License of upstream Homebrewery has changed
|
||||||
|
assignees: f.weber
|
||||||
|
labels: bug
|
||||||
|
---
|
||||||
|
|
||||||
|
It seems that [naturalcrit/homebrewery](https://github.com/naturalcrit/homebrewery) is not using the MIT license anymore.
|
||||||
|
|
||||||
|
We have to check that and if we are still allowed to use their project.
|
@ -24,12 +24,18 @@ 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: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v3
|
||||||
@ -55,3 +61,20 @@ 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 }}
|
||||||
|
kosmos367/homebrewery:latest
|
||||||
|
kosmos367/homebrewery:${{ github.event.release.tag_name }}
|
||||||
|
|
||||||
|
update-description:
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Docker Hub Description
|
||||||
|
uses: peter-evans/dockerhub-description@v4
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
repository: kosmos367/homebrewery
|
||||||
|
@ -2,7 +2,7 @@ name: Updating to latest Homebrewery Release
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 9,17 * * *'
|
- cron: '0 17 * * *'
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
@ -17,7 +17,19 @@ jobs:
|
|||||||
update:
|
update:
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
|
- name: Check current license
|
||||||
|
run: |
|
||||||
|
resp=$(curl -sSf \
|
||||||
|
-H "Accept: application/vnd.github.v3+json" \
|
||||||
|
-H "Authorization: token ${{ secrets.GH_TOKEN }}" \
|
||||||
|
https://api.github.com/repos/naturalcrit/homebrewery)
|
||||||
|
|
||||||
|
license=$(echo "$resp" | jq -r .license.spdx_id)
|
||||||
|
|
||||||
|
echo "LICENSE=$license" >>"$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Get latest Homebrewery release via GitHub API
|
- name: Get latest Homebrewery release via GitHub API
|
||||||
|
if: ${{ env.LICENSE == 'MIT' }}
|
||||||
run: |
|
run: |
|
||||||
resp=$(curl -sSf \
|
resp=$(curl -sSf \
|
||||||
-H "Accept: application/vnd.github.v3+json" \
|
-H "Accept: application/vnd.github.v3+json" \
|
||||||
@ -27,7 +39,7 @@ jobs:
|
|||||||
id=$( echo "$resp" | jq -r .id)
|
id=$( echo "$resp" | jq -r .id)
|
||||||
tag_name=$( echo "$resp" | jq -r .tag_name)
|
tag_name=$( echo "$resp" | jq -r .tag_name)
|
||||||
name=$( echo "$resp" | jq -r .name)
|
name=$( echo "$resp" | jq -r .name)
|
||||||
url=$( echo "$resp" | jq -r .url)
|
url=$( echo "$resp" | jq -r .html_url)
|
||||||
draft=$( echo "$resp" | jq -r .draft)
|
draft=$( echo "$resp" | jq -r .draft)
|
||||||
prerelease=$( echo "$resp" | jq -r .prerelease)
|
prerelease=$( echo "$resp" | jq -r .prerelease)
|
||||||
body_text=$( echo "$resp" | jq -r .body)
|
body_text=$( echo "$resp" | jq -r .body)
|
||||||
@ -47,11 +59,12 @@ jobs:
|
|||||||
printf '\n'
|
printf '\n'
|
||||||
printf '%s\n' "$body_text"
|
printf '%s\n' "$body_text"
|
||||||
printf '\n'
|
printf '\n'
|
||||||
printf '%s\n' "See original Changelog from [$name]($html_url)"
|
printf '%s\n' "See original Changelog from [$name]($url)"
|
||||||
echo "EOF"
|
echo "EOF"
|
||||||
} >>"$GITHUB_ENV"
|
} >>"$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Debug step
|
- name: Debug step
|
||||||
|
if: ${{ env.LICENSE == 'MIT' }}
|
||||||
run: |
|
run: |
|
||||||
echo "id: $ID"
|
echo "id: $ID"
|
||||||
echo "draft: $DRAFT"
|
echo "draft: $DRAFT"
|
||||||
@ -62,10 +75,24 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Docker Release
|
- name: Create Docker Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
if: ${{ env.ID > 0 && env.DRAFT != 'true' }}
|
if: ${{ env.LICENSE == 'MIT' && env.ID > 0 && env.DRAFT != 'true' }}
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GT_UPDATE_TOKEN }}
|
token: ${{ secrets.GT_UPDATE_TOKEN }}
|
||||||
prerelease: ${{ env.PRERELEASE }}
|
prerelease: ${{ env.PRERELEASE }}
|
||||||
name: ${{ env.NAME }}
|
name: ${{ env.NAME }}
|
||||||
tag_name: ${{ env.TAG_NAME }}
|
tag_name: ${{ env.TAG_NAME }}
|
||||||
body: ${{ env.RELEASE_BODY }}
|
body: ${{ env.RELEASE_BODY }}
|
||||||
|
|
||||||
|
- name: Checkout Repository for issue template
|
||||||
|
if: ${{ env.LICENSE != 'MIT' }}
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Create License changed issue
|
||||||
|
uses: JasonEtco/create-an-issue@v2
|
||||||
|
if: ${{ env.LICENSE != 'MIT' }}
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GT_UPDATE_TOKEN }}
|
||||||
|
with:
|
||||||
|
update_existing: true
|
||||||
|
search_existing: open
|
||||||
|
filename: .gitea/ISSUE_LICENSE_CHANGED.md
|
||||||
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2025 f.weber
|
Copyright (c) 2025 - present Florian Weber
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
136
README.md
136
README.md
@ -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 [NaturalCrit’s 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!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user