10 Commits

Author SHA1 Message Date
60e76f851e env
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 18m23s
2025-07-29 13:06:54 -04:00
6e374e59f5 cors
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 15m18s
2025-07-29 12:39:54 -04:00
fd1a88bd9f migrations
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 15m50s
2025-07-29 12:15:15 -04:00
f0f8a399d7 enable pushing of built Docker images in GitHub Actions workflow
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 16m23s
2025-07-29 10:50:23 -04:00
a01a16f1f1 enable pushing of built Docker images in GitHub Actions workflow 2025-07-29 10:50:05 -04:00
fac9dc0b92 update .gitignore, modify Docker Hub credentials in workflow, and add usage instructions to README
Some checks failed
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Failing after 31s
2025-07-29 10:48:23 -04:00
72325591b7 add GitHub Actions workflow for building and pushing Docker images 2025-07-28 19:29:11 -04:00
fe8c090942 add GitHub Actions workflow for building and pushing Docker images 2025-07-28 19:17:04 -04:00
3dd63e2af1 Merge remote-tracking branch 'origin/master' 2025-07-28 19:13:40 -04:00
ca4335ae70 add .gitignore and Dockerfile; update submodule URLs to use SSH 2025-07-28 19:13:33 -04:00
8 changed files with 94 additions and 5 deletions

View File

@@ -0,0 +1,44 @@
on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to build and push'
required: false
default: 'latest'
push:
tags:
- "v*"
name: 🏗️✨ Build Workflow
jobs:
Build:
name: 🖥️ 🔨 Build
runs-on: ubuntu-latest
steps:
- name: 📖 🔍 Checkout Repository Code
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: 'true'
- name: 🔑 🔐 Login to Docker Hub
uses: docker/login-action@v3
with:
registry: scr.siteworxpro.com
username: ${{ secrets.SITEWORX_USERNAME }}
password: ${{ secrets.SITEWORX_PASSWORD }}
- name: 🏗️ 🔧 Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: 🐳 🔨 Build Container
uses: docker/build-push-action@v6
with:
push: true
sbom: true
provenance: true
platforms: linux/arm64,linux/amd64
context: .
dockerfile: Dockerfile
tags: scr.siteworxpro.com/gun-manager:${{ gitea.ref_name }}

3
.gitignore vendored
View File

@@ -1 +1,2 @@
.idea/ .idea/
data/

4
.gitmodules vendored
View File

@@ -1,6 +1,6 @@
[submodule "backend"] [submodule "backend"]
path = backend path = backend
url = https://gitea.siteworxpro.com/siteworxpro/gun-manager-backend.git url = git@gitea.siteworxpro.com:siteworxpro/gun-manager-backend.git
[submodule "frontend"] [submodule "frontend"]
path = frontend path = frontend
url = https://gitea.siteworxpro.com/siteworxpro/gun-manager-frontend.git url = git@gitea.siteworxpro.com:siteworxpro/gun-manager-frontend.git

View File

@@ -1,5 +1,7 @@
FROM node:22.14.0 AS frontend FROM node:22.14.0 AS frontend
ENV VITE_API="https://localhost"
WORKDIR /frontend WORKDIR /frontend
ADD frontend/ ./ ADD frontend/ ./
RUN npm install && npm run build RUN npm install && npm run build
@@ -21,6 +23,8 @@ WORKDIR /app
COPY --from=frontend /frontend/dist /app/dist COPY --from=frontend /frontend/dist /app/dist
COPY --from=backend /backend/app /app/app COPY --from=backend /backend/app /app/app
ADD backend/migrations /app/migrations
EXPOSE 8000 EXPOSE 8000
ENTRYPOINT ["/app/app"] ENTRYPOINT ["/app/app"]

6
README.md Normal file
View File

@@ -0,0 +1,6 @@
```shell
docker run --rm \
-v $(pwd)/data:/data \
-p 8000:8000 \
scr.siteworxpro.com/gun-manager:v0.0.3 -database /data/gun_inventory.sqlite
```

Submodule backend updated: 5ac3032a16...3c6750ab13

34
docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
services:
traefik:
image: traefik:latest
container_name: traefik
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
restart: always
command:
- "--providers.docker=true"
- "--providers.docker.exposedByDefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web-secure.address=:443"
- "--accesslog=true"
- "--entrypoints.web.http.redirections.entryPoint.to=web-secure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
api:
image: scr.siteworxpro.com/gun-manager:v0.0.3
container_name: gun-manager
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.entrypoints=web-secure"
- "traefik.http.routers.api.rule=Host(`localhost`) || Host(`127.0.0.1`)"
- "traefik.http.routers.api.tls=true"
- "traefik.http.services.api.loadbalancer.server.port=8000"
volumes:
- ./data:/app/data
command:
- "-database"
- "./data/gun_inventory.sqlite"