@@ -57,18 +57,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: "1.26.1"
|
go-version: "1.26.1"
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Gitea Container Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
registry: source.offmarket.win
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
username: ${{ secrets.GITEA_REGISTRY_USER }}
|
||||||
|
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
|
||||||
- name: Login to GitHub Container Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Delete existing nightly release
|
- name: Delete existing nightly release
|
||||||
env:
|
env:
|
||||||
@@ -98,35 +92,22 @@ jobs:
|
|||||||
- name: Push Docker images
|
- name: Push Docker images
|
||||||
run: |
|
run: |
|
||||||
# Push all architecture-specific images
|
# Push all architecture-specific images
|
||||||
docker push eaglecast:nightly-amd64
|
docker push source.offmarket.win/aleagle/eaglecast:nightly-amd64
|
||||||
docker push eaglecast:nightly-arm64v8
|
docker push source.offmarket.win/aleagle/eaglecast:nightly-arm64v8
|
||||||
docker push eaglecast:nightly-armv6
|
docker push source.offmarket.win/aleagle/eaglecast:nightly-armv6
|
||||||
docker push eaglecast:nightly-armv7
|
docker push source.offmarket.win/aleagle/eaglecast:nightly-armv7
|
||||||
docker push ghcr.io/h202-wq/eaglecast:nightly-amd64
|
|
||||||
docker push ghcr.io/h202-wq/eaglecast:nightly-arm64v8
|
|
||||||
docker push ghcr.io/h202-wq/eaglecast:nightly-armv6
|
|
||||||
docker push ghcr.io/h202-wq/eaglecast:nightly-armv7
|
|
||||||
|
|
||||||
- name: Create and push Docker manifests
|
- name: Create and push Docker manifest
|
||||||
run: |
|
run: |
|
||||||
# Docker Hub manifest
|
docker buildx imagetools create -t source.offmarket.win/aleagle/eaglecast:nightly \
|
||||||
docker buildx imagetools create -t eaglecast:nightly \
|
source.offmarket.win/aleagle/eaglecast:nightly-amd64 \
|
||||||
eaglecast:nightly-amd64 \
|
source.offmarket.win/aleagle/eaglecast:nightly-arm64v8 \
|
||||||
eaglecast:nightly-arm64v8 \
|
source.offmarket.win/aleagle/eaglecast:nightly-armv6 \
|
||||||
eaglecast:nightly-armv6 \
|
source.offmarket.win/aleagle/eaglecast:nightly-armv7
|
||||||
eaglecast:nightly-armv7
|
|
||||||
|
|
||||||
# GHCR manifest
|
- name: Verify Docker manifest
|
||||||
docker buildx imagetools create -t ghcr.io/h202-wq/eaglecast:nightly \
|
|
||||||
ghcr.io/h202-wq/eaglecast:nightly-amd64 \
|
|
||||||
ghcr.io/h202-wq/eaglecast:nightly-arm64v8 \
|
|
||||||
ghcr.io/h202-wq/eaglecast:nightly-armv6 \
|
|
||||||
ghcr.io/h202-wq/eaglecast:nightly-armv7
|
|
||||||
|
|
||||||
- name: Verify Docker manifests
|
|
||||||
run: |
|
run: |
|
||||||
docker buildx imagetools inspect eaglecast:nightly
|
docker buildx imagetools inspect source.offmarket.win/aleagle/eaglecast:nightly
|
||||||
docker buildx imagetools inspect ghcr.io/h202-wq/eaglecast:nightly
|
|
||||||
|
|
||||||
- name: Create GitHub Release
|
- name: Create GitHub Release
|
||||||
env:
|
env:
|
||||||
@@ -137,7 +118,7 @@ jobs:
|
|||||||
--notes "
|
--notes "
|
||||||
> **Warning**: This is an automated nightly build from the master branch.
|
> **Warning**: This is an automated nightly build from the master branch.
|
||||||
> It may contain bugs and breaking changes. Use at your own risk.
|
> It may contain bugs and breaking changes. Use at your own risk.
|
||||||
> Available on Docker Hub and GitHub Container Registry as `eaglecast:nightly`.
|
> Available on the Gitea container registry as `source.offmarket.win/aleagle/eaglecast:nightly`.
|
||||||
> For stable releases, please use a versioned release.
|
> For stable releases, please use a versioned release.
|
||||||
|
|
||||||
Built from commit: $(git rev-parse --short HEAD)" \
|
Built from commit: $(git rev-parse --short HEAD)" \
|
||||||
|
|||||||
@@ -24,18 +24,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: "1.26.1"
|
go-version: "1.26.1"
|
||||||
|
|
||||||
- name: Login to Docker Registry
|
- name: Login to Gitea Container Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
registry: source.offmarket.win
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
username: ${{ secrets.GITEA_REGISTRY_USER }}
|
||||||
|
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
|
||||||
- name: Login to GitHub Docker Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Prepare Dependencies
|
- name: Prepare Dependencies
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
+9
-10
@@ -10,7 +10,6 @@ snapshot:
|
|||||||
env:
|
env:
|
||||||
- GO111MODULE=on
|
- GO111MODULE=on
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
- GITHUB_ORG=h202-wq
|
|
||||||
|
|
||||||
before:
|
before:
|
||||||
hooks:
|
hooks:
|
||||||
@@ -57,7 +56,7 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-amd64"
|
- "source.offmarket.win/aleagle/eaglecast:nightly-amd64"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/amd64
|
- --platform=linux/amd64
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -78,7 +77,7 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-arm64v8"
|
- "source.offmarket.win/aleagle/eaglecast:nightly-arm64v8"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm64/v8
|
- --platform=linux/arm64/v8
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -100,7 +99,7 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-armv6"
|
- "source.offmarket.win/aleagle/eaglecast:nightly-armv6"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm/v6
|
- --platform=linux/arm/v6
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -122,7 +121,7 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-armv7"
|
- "source.offmarket.win/aleagle/eaglecast:nightly-armv7"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm/v7
|
- --platform=linux/arm/v7
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -139,12 +138,12 @@ dockers:
|
|||||||
- docker-entrypoint.sh
|
- docker-entrypoint.sh
|
||||||
|
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly
|
- name_template: source.offmarket.win/aleagle/eaglecast:nightly
|
||||||
image_templates:
|
image_templates:
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-amd64
|
- source.offmarket.win/aleagle/eaglecast:nightly-amd64
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-arm64v8
|
- source.offmarket.win/aleagle/eaglecast:nightly-arm64v8
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-armv6
|
- source.offmarket.win/aleagle/eaglecast:nightly-armv6
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:nightly-armv7
|
- source.offmarket.win/aleagle/eaglecast:nightly-armv7
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
disable: true
|
disable: true
|
||||||
|
|||||||
+18
-19
@@ -3,7 +3,6 @@ project_name: eaglecast
|
|||||||
env:
|
env:
|
||||||
- GO111MODULE=on
|
- GO111MODULE=on
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
- GITHUB_ORG=h202-wq
|
|
||||||
|
|
||||||
before:
|
before:
|
||||||
hooks:
|
hooks:
|
||||||
@@ -49,8 +48,8 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-amd64"
|
- "source.offmarket.win/aleagle/eaglecast:latest-amd64"
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
- "source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-amd64"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/amd64
|
- --platform=linux/amd64
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -71,8 +70,8 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
- "source.offmarket.win/aleagle/eaglecast:latest-arm64v8"
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
- "source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-arm64v8"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm64/v8
|
- --platform=linux/arm64/v8
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -94,8 +93,8 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv6"
|
- "source.offmarket.win/aleagle/eaglecast:latest-armv6"
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
- "source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-armv6"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm/v6
|
- --platform=linux/arm/v6
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -117,8 +116,8 @@ dockers:
|
|||||||
ids:
|
ids:
|
||||||
- eaglecast
|
- eaglecast
|
||||||
image_templates:
|
image_templates:
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv7"
|
- "source.offmarket.win/aleagle/eaglecast:latest-armv7"
|
||||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
- "source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-armv7"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm/v7
|
- --platform=linux/arm/v7
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
@@ -135,15 +134,15 @@ dockers:
|
|||||||
- docker-entrypoint.sh
|
- docker-entrypoint.sh
|
||||||
|
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest
|
- name_template: source.offmarket.win/aleagle/eaglecast:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-amd64
|
- source.offmarket.win/aleagle/eaglecast:latest-amd64
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-arm64v8
|
- source.offmarket.win/aleagle/eaglecast:latest-arm64v8
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv6
|
- source.offmarket.win/aleagle/eaglecast:latest-armv6
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv7
|
- source.offmarket.win/aleagle/eaglecast:latest-armv7
|
||||||
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}
|
- name_template: source.offmarket.win/aleagle/eaglecast:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64
|
- source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-amd64
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
- source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-arm64v8
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6
|
- source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-armv6
|
||||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7
|
- source.offmarket.win/aleagle/eaglecast:{{ .Tag }}-armv7
|
||||||
|
|||||||
@@ -25,16 +25,16 @@ Send campaigns that soar: manage millions of subscribers across lists, run opt-i
|
|||||||
|
|
||||||
### Docker
|
### Docker
|
||||||
|
|
||||||
Build the image locally and run the sample [docker-compose.yml](docker-compose.yml):
|
The image is on the Gitea registry at `source.offmarket.win/aleagle/eaglecast:latest`.
|
||||||
|
Download the sample [docker-compose.yml](docker-compose.yml) and run:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# Build the eaglecast image.
|
|
||||||
make dist && docker build -t eaglecast:latest .
|
|
||||||
|
|
||||||
# Run the services in the background.
|
# Run the services in the background.
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To build the image yourself instead: `docker build -t source.offmarket.win/aleagle/eaglecast:latest .`
|
||||||
|
|
||||||
Visit `http://localhost:9000`
|
Visit `http://localhost:9000`
|
||||||
|
|
||||||
__________________
|
__________________
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
image: source.offmarket.win/aleagle/eaglecast:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- EAGLECAST_app__address=0.0.0.0:9000
|
- EAGLECAST_app__address=0.0.0.0:9000
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ x-db-credentials: &db-credentials # Use the default
|
|||||||
services:
|
services:
|
||||||
# eaglecast app
|
# eaglecast app
|
||||||
app:
|
app:
|
||||||
image: eaglecast:latest
|
image: source.offmarket.win/aleagle/eaglecast:latest
|
||||||
container_name: eaglecast_app
|
container_name: eaglecast_app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ EagleCast is a simple binary application that requires a Postgres database insta
|
|||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
Build the `eaglecast` Docker image locally with `make dist` and `docker build`, or push it to a registry of your choice.
|
The latest image is available on the Gitea registry at `source.offmarket.win/aleagle/eaglecast:latest`.
|
||||||
|
|
||||||
The recommended method is to download the [docker-compose.yml](https://source.offmarket.win/aleagle/EagleCast/src/branch/master/docker-compose.yml) file, customize it for your environment and then to simply run `docker compose up -d`.
|
The recommended method is to download the [docker-compose.yml](https://source.offmarket.win/aleagle/EagleCast/src/branch/master/docker-compose.yml) file, customize it for your environment and then to simply run `docker compose up -d`.
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ The repository ships a Coolify-ready compose file, [docker-compose.coolify.yml](
|
|||||||
|
|
||||||
A nightly build is automatically published with the latest changes merged to the repository. If you want to access the latest changes without waiting for versioned releases, you can obtain the nightly builds and follow the same instructions above.
|
A nightly build is automatically published with the latest changes merged to the repository. If you want to access the latest changes without waiting for versioned releases, you can obtain the nightly builds and follow the same instructions above.
|
||||||
|
|
||||||
- **Docker**: `eaglecast:nightly` (use this as the image name in the docker-compose file)
|
- **Docker**: `source.offmarket.win/aleagle/eaglecast:nightly` (use this as the image name in the docker-compose file)
|
||||||
- **Binary**: [Download nightly release](https://source.offmarket.win/aleagle/EagleCast/releases)
|
- **Binary**: [Download nightly release](https://source.offmarket.win/aleagle/EagleCast/releases)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ To restore a previous version, you have to restore the DB for that particular ve
|
|||||||
|
|
||||||
1. Stop EagleCast.
|
1. Stop EagleCast.
|
||||||
2. Restore your pre-upgrade database.
|
2. Restore your pre-upgrade database.
|
||||||
3. If you're using `docker compose`, edit `docker-compose.yml` and change `eaglecast:latest` to `eaglecast:v2.4.0` _(for example)_.
|
3. If you're using `docker compose`, edit `docker-compose.yml` and change `source.offmarket.win/aleagle/eaglecast:latest` to `source.offmarket.win/aleagle/eaglecast:v2.4.0` _(for example)_.
|
||||||
4. Restart.
|
4. Restart.
|
||||||
|
|
||||||
**Example with docker:**
|
**Example with docker:**
|
||||||
@@ -64,7 +64,7 @@ psql -h 127.0.0.1 -p 9432 -U eaglecast -W eaglecast < eaglecast-preupgrade-db.sq
|
|||||||
```
|
```
|
||||||
x-app-defaults: &app-defaults
|
x-app-defaults: &app-defaults
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
image: eaglecast:v2.4.0
|
image: source.offmarket.win/aleagle/eaglecast:v2.4.0
|
||||||
```
|
```
|
||||||
4. Restart:
|
4. Restart:
|
||||||
`sudo docker compose up -d app db nginx certbot`
|
`sudo docker compose up -d app db nginx certbot`
|
||||||
|
|||||||
Reference in New Issue
Block a user