Skip to content

Commit 2ebc05b

Browse files
committed
feat: update version to 1.1.3 and add manual release workflow for Docker image
1 parent 726a9b8 commit 2ebc05b

4 files changed

Lines changed: 133 additions & 11 deletions

File tree

.github/workflows/release.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Manual Release
2+
3+
on:
4+
workflow_dispatch:
5+
6+
permissions:
7+
contents: write
8+
packages: write
9+
10+
jobs:
11+
release:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
17+
- name: Get version
18+
id: get_version
19+
run: |
20+
VERSION=$(node -p "require('./package.json').version")
21+
echo "VERSION=$VERSION" >> $GITHUB_ENV
22+
echo "version=$VERSION" >> $GITHUB_OUTPUT
23+
24+
- name: Set up QEMU
25+
uses: docker/setup-qemu-action@v3
26+
27+
- name: Set up Docker Buildx
28+
uses: docker/setup-buildx-action@v3
29+
30+
- name: Log in to GHCR
31+
uses: docker/login-action@v3
32+
with:
33+
registry: ghcr.io
34+
username: ${{ github.actor }}
35+
password: ${{ secrets.GITHUB_TOKEN }}
36+
37+
- name: Lowercase repo name
38+
run: |
39+
echo "IMAGE_NAME=ghcr.io/${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
40+
41+
- name: Extract metadata (tags, labels) for Docker
42+
id: meta
43+
uses: docker/metadata-action@v5
44+
with:
45+
images: ${{ env.IMAGE_NAME }}
46+
tags: |
47+
type=raw,value=${{ env.VERSION }}
48+
type=raw,value=latest
49+
50+
- name: Build and push Docker image
51+
uses: docker/build-push-action@v5
52+
with:
53+
context: .
54+
platforms: linux/amd64,linux/arm64
55+
push: true
56+
tags: ${{ steps.meta.outputs.tags }}
57+
labels: ${{ steps.meta.outputs.labels }}
58+
cache-from: type=gha
59+
cache-to: type=gha,mode=max
60+
61+
- name: Create GitHub Release
62+
uses: softprops/action-gh-release@v2
63+
with:
64+
tag_name: ${{ env.VERSION }}
65+
name: Release ${{ env.VERSION }}
66+
body: |
67+
## Docker Image
68+
`docker pull ghcr.io/${{ github.repository }}:${{ env.VERSION }}`
69+
70+
Manual release of version ${{ env.VERSION }}.
71+
generate_release_notes: true
72+
draft: false
73+
prerelease: false

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "booking-calendar",
3-
"version": "1.1.2",
3+
"version": "1.1.3",
44
"private": true,
55
"scripts": {
66
"dev:server": "bun run --watch src/server/index.ts",

src/docs/.vitepress/config.mts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ export default defineConfig({
8080
"meta",
8181
{
8282
name: "twitter:description",
83-
content: "A modern, open-source, and privacy-focused booking system for professionals.",
83+
content:
84+
"A modern, open-source, and privacy-focused booking system for professionals.",
8485
},
8586
],
8687
["meta", { name: "twitter:image", content: "/android-chrome-512x512.png" }],
@@ -194,7 +195,9 @@ export default defineConfig({
194195
},
195196
],
196197

197-
socialLinks: [{ icon: "github", link: "https://github.com/sametcn99/booking-calendar" }],
198+
socialLinks: [
199+
{ icon: "github", link: "https://github.com/sametcn99/booking-calendar" },
200+
],
198201

199202
footer: {
200203
message: "Released under the GPL 3.0 License.",
@@ -205,7 +208,8 @@ export default defineConfig({
205208
},
206209

207210
editLink: {
208-
pattern: "https://github.com/sametcn99/booking-calendar/edit/main/src/docs/:path",
211+
pattern:
212+
"https://github.com/sametcn99/booking-calendar/edit/main/src/docs/:path",
209213
text: "Edit this page on GitHub",
210214
},
211215
},

src/docs/guide/deployment-docker.md

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,52 @@ Deploying Booking Calendar with Docker is the most reliable method for productio
1010

1111
---
1212

13-
## 1. Fast Track (Standard Setup)
13+
## 1. Using Pre-built Images (Recommended)
14+
15+
The easiest way to run Booking Calendar is by using the pre-built images from our GitHub Container Registry. This avoids the need to build the image locally and ensures you're running a verified version.
16+
17+
### Docker Compose (Recommended)
18+
19+
Create a `docker-compose.yml` file:
20+
21+
```yaml
22+
services:
23+
app:
24+
image: ghcr.io/sametcn99/booking-calendar:latest
25+
container_name: booking-calendar
26+
restart: unless-stopped
27+
ports:
28+
- "3000:3000"
29+
volumes:
30+
- ./data:/app/data
31+
environment:
32+
- PORT=3000
33+
- DATABASE_PATH=/app/data/database.sqlite
34+
# See Section 3 for more configuration variables
35+
```
36+
37+
Run the application:
38+
39+
```bash
40+
docker compose up -d
41+
```
42+
43+
### Docker Run
44+
45+
If you prefer using a single command:
46+
47+
```bash
48+
docker run -d \
49+
--name booking-calendar \
50+
-p 3000:3000 \
51+
-v $(pwd)/data:/app/data \
52+
-e DATABASE_PATH=/app/data/database.sqlite \
53+
ghcr.io/sametcn99/booking-calendar:latest
54+
```
55+
56+
---
57+
58+
## 2. Manual Build (Custom Setup)
1459

1560
### Prepare Environment
1661

@@ -36,7 +81,7 @@ The application will be accessible at `http://localhost:3000` (or the port you d
3681

3782
---
3883

39-
## 2. Understanding variables
84+
## 3. Understanding variables
4085

4186
There are two types of variables in Booking Calendar's Docker setup:
4287

@@ -58,7 +103,7 @@ These can be changed at any time by restarting the container.
58103

59104
---
60105

61-
## 3. Persistent Data (Volumes)
106+
## 4. Persistent Data (Volumes)
62107

63108
Booking Calendar uses a Docker Volume to ensure your database and settings are not lost when the container is updated or removed.
64109

@@ -73,7 +118,7 @@ The SQLite database is stored in `/app/data/booking.db` inside the container, wh
73118

74119
---
75120

76-
## 4. Deploying on Coolify
121+
## 5. Deploying on Coolify
77122

78123
Booking Calendar is optimized for **Coolify**. The `docker-compose.yml` uses `${VAR:-default}` syntax which Coolify automatically parses.
79124

@@ -84,7 +129,7 @@ Booking Calendar is optimized for **Coolify**. The `docker-compose.yml` uses `${
84129

85130
---
86131

87-
## 5. Reverse Proxy & SSL
132+
## 6. Reverse Proxy & SSL
88133

89134
For production, you **must** use HTTPS. We recommend:
90135

@@ -108,7 +153,7 @@ labels:
108153
109154
---
110155
111-
## 6. Maintenance Commands
156+
## 7. Maintenance Commands
112157
113158
| Command | Description |
114159
| :----------------------------------------------- | :---------------------------- |
@@ -119,7 +164,7 @@ labels:
119164

120165
---
121166

122-
## 7. Troubleshooting
167+
## 8. Troubleshooting
123168

124169
### Container keeps restarting
125170

0 commit comments

Comments
 (0)