Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
name: Build and Publish Docker Image
name: Build and Publish Release

on:
push:
branches: [ master, main ]
workflow_dispatch:
release:
types: [published]

env:
REGISTRY_GHCR: ghcr.io
# Replace 'your-dockerhub-username' with your actual Docker Hub ID
DOCKERHUB_REPO: brianhumlicek/${{ github.event.repository.name }}

jobs:
build-and-push:
Expand All @@ -27,35 +24,25 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

# 1. Login to GitHub Container Registry
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY_GHCR }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# 2. Login to Docker Hub (Add your secrets first!)
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

# 3. Extract metadata for BOTH registries
- name: Extract metadata (tags, labels)
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.REGISTRY_GHCR }}/${{ github.repository }}
${{ env.DOCKERHUB_REPO }}
tags: |
type=ref,event=branch
type=sha
type=raw,value=latest,enable={{is_default_branch}}
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=raw,value=latest

# 4. Build once and push to both
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
Expand All @@ -64,6 +51,8 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
GITHUB_SHA=${{ github.sha }}
GITHUB_RUN_NUMBER=${{ github.run_number }}
33 changes: 7 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,36 +17,13 @@ A real-time web portal for monitoring and controlling DSC PowerSeries NEO alarm

### Docker Compose (Recommended)

1. Create a `docker-compose.yml` file:

````````
version: '3.4'

services:
NeoHub:
image: ghcr.io/brianhumlicek/NeoHub:latest
container_name: NeoHub
ports:
- "5181:8080" # HTTP Web UI
- "7013:8443" # HTTPS Web UI
- "3072:3072" # Panel ITv2 connection
volumes:
- NeoHub:/app/persist
restart: unless-stopped

volumes:
NeoHub_persist:
````````

2. Create a `userSettings.json` file (see [Configuration](#-configuration) below)

3. Start the container:
1. Start the container using the included `docker-compose.yml`:

````````
docker-compose up -d
````````

4. Access the UI at `http://localhost:5181` or `https://localhost:7013`
2. Access the UI at `http://localhost:5181` or `https://localhost:7013`

### Docker Run

Expand Down Expand Up @@ -283,7 +260,11 @@ Program the following tags in section **[851]** for your chosen integration slot

### Local Development

````````
The repository includes `docker-compose.local.yml` for building and running the image from source instead of pulling from GHCR.

```
docker-compose -f docker-compose.local.yml up -d --build
```

---

Expand Down
16 changes: 16 additions & 0 deletions docker-compose.local.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
services:
neohub:
build:
context: .
dockerfile: Dockerfile
container_name: NeoHub_local
ports:
- "5181:8080" # HTTP Web UI
- "7013:8443" # HTTPS Web UI
- "3072:3072" # Panel ITv2 connection
volumes:
- NeoHub:/app/persist
restart: unless-stopped

volumes:
NeoHub:
23 changes: 10 additions & 13 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
version: '3.8'

services:
neohub:
image: ghcr.io/brianhumlicek/neohub:latest
container_name: neohub
image: "ghcr.io/brianhumlicek/neohub:latest"
container_name: NeoHub
ports:
- "8080:5181"
- "8443:8181"
- "3072:3072"
environment:
- ASPNETCORE_ENVIRONMENT=Production
- ASPNETCORE_URLS=http://+:8080
- EnableHttps=false
- "5181:8080" # HTTP Web UI
- "7013:8443" # HTTPS Web UI
- "3072:3072" # Panel ITv2 connection
volumes:
- ./persist:/app/persist
restart: unless-stopped
- NeoHub:/app/persist
restart: unless-stopped

volumes:
NeoHub: