14 Commits

Author SHA1 Message Date
28731e1d60 update docker-compose.yml URL to use version tag v1.1.0
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 15m53s
2025-07-30 11:35:23 -04:00
875c3304d1 update docker-compose.yml URL to use version tag v1.1.0
Some checks failed
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Has been cancelled
2025-07-30 11:34:06 -04:00
36fcd374d5 update Docker image reference and enhance README with application details 2025-07-29 16:29:30 -04:00
d3059d3481 update Docker Hub credentials and image version in configuration files
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 17m16s
2025-07-29 16:08:51 -04:00
c0fd8d6796 version
Some checks failed
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Has been cancelled
2025-07-29 13:45:04 -04:00
a7fef89dda cors
All checks were successful
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 20m24s
2025-07-29 13:11:12 -04:00
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
7 changed files with 114 additions and 3 deletions

View File

@@ -0,0 +1,43 @@
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:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_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: siteworxpro/gun-manager:${{ gitea.ref_name }}

1
.gitignore vendored
View File

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

View File

@@ -1,5 +1,7 @@
FROM node:22.14.0 AS frontend FROM node:22.14.0 AS frontend
ENV VITE_API=""
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"]

27
README.md Normal file
View File

@@ -0,0 +1,27 @@
# Gun Manager
Gun Manager is a web application for managing a gun inventory, built with Go and React. It allows users to add, edit,
and delete gun records, as well as view them in a user-friendly interface.
## Features
- Add, edit, and delete gun records
- View gun records in a table
- Search and filter gun records
- Responsive design
- Photo upload for each gun record
## Running the Application
To run the Gun Manager application, you need to have Docker installed on your machine. The application uses a SQLite database to store gun records.
## Prerequisites
- Docker installed on your machine
- A directory named `data` in the current working directory to store the SQLite database file
```shell
mkdir -p data && \
curl -sSL https://gitea.siteworxpro.com/siteworxpro/gun-manager/raw/tag/v1.1.0/docker-compose.yml | docker compose -f - up -d
```
## Accessing the Application
Once the application is running, you can access it in your web browser at `https://localhost`.

Submodule backend updated: 5ac3032a16...42bd95d804

36
docker-compose.yml Normal file
View File

@@ -0,0 +1,36 @@
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: siteworxpro/gun-manager:v1.1.0
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"
environment:
CORS_ORIGINS: "https://localhost"