diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build_latest.yml
similarity index 99%
rename from .gitea/workflows/build.yml
rename to .gitea/workflows/build_latest.yml
index e7f70e8..ac6d4a0 100644
--- a/.gitea/workflows/build.yml
+++ b/.gitea/workflows/build_latest.yml
@@ -8,7 +8,7 @@ on:
- 'manual_build'
jobs:
- build:
+ build-latest:
runs-on: ubuntu-latest
steps:
- name: Extract Version Tag
diff --git a/.gitea/workflows/build_stable.yml b/.gitea/workflows/build_stable.yml
new file mode 100644
index 0000000..806d289
--- /dev/null
+++ b/.gitea/workflows/build_stable.yml
@@ -0,0 +1,62 @@
+name: Build
+
+on:
+ schedule:
+ - cron: "0 0 * * 1"
+ push:
+ tags:
+ - 'manual_build'
+
+jobs:
+ build-stable:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Extract Version Tag
+ id: extract-version
+ run: |
+ export DIGEST=$(curl -s "https://registry.hub.docker.com/v2/repositories/library/nextcloud/tags/?page_size=100" | jq -r '.results[] | select(.name=="stable") .digest')
+ export VERSION=$(curl -s "https://registry.hub.docker.com/v2/repositories/library/nextcloud/tags/?page_size=1000" | jq -r ".results[] | select(.name | test(\"^([0-9]+\\\.)+[0-9]+$\")) | select(.digest==\"$DIGEST\").name")
+ export VERSION_MAJOR=$(curl -s "https://registry.hub.docker.com/v2/repositories/library/nextcloud/tags/?page_size=1000" | jq -r ".results[] | select(.name | test(\"^[0-9]{1,2}$\")) | select(.digest==\"$DIGEST\").name")
+ echo "Latest version: $VERSION"
+ echo "Major version: $VERSION_MAJOR"
+ echo "version=${VERSION}" >> $GITHUB_OUTPUT
+ echo "version-major=${VERSION_MAJOR}" >> $GITHUB_OUTPUT
+ shell: bash
+ - name: Check if the image was already built
+ id: check-build-status
+ run: |
+ if curl --silent -f -lSL "https://hub.docker.com/v2/repositories/jiriks74/nextcloud-extended/tags/$(echo ${{steps.extract-version.outputs.version}})" 2> /dev/null; then echo "Built already!" && exit 1; else echo "This version isn't built yet."; fi
+
+ - name: Update repositories
+ run: sudo apt update
+ - name: Install Docker
+ uses: awalsh128/cache-apt-pkgs-action@latest
+ with:
+ packages: docker.io
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ with:
+ # driver-opts: network=host
+ platforms: linux/amd64,linux/arm64
+
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Build image
+ uses: docker/build-push-action@v2
+ with:
+ push: true
+ tags: jiriks74/nextcloud-extended:${{ steps.extract-version.outputs.version }},jiriks74/nextcloud-extended:${{ steps.extract-version.outputs.version-major }},jiriks74/nextcloud-extended:stable
+ platforms: linux/amd64,linux/arm64
+ context: .
+ file: ./Dockerfile
+
diff --git a/README.md b/README.md
index 0088823..062ebc5 100644
--- a/README.md
+++ b/README.md
@@ -4,19 +4,90 @@
[![Docker Stars](https://img.shields.io/docker/stars/jiriks74/nextcloud-extended.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/jiriks74/nextcloud-extended)
[![Docker Size](https://img.shields.io/docker/image-size/jiriks74/nextcloud-extended/latest.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Size&logo=docker)](https://hub.docker.com/r/jiriks74/nextcloud-extended)
-
Nextcloud's docker image with extra utilities
-## Image availabe on [DockerHub](https://hub.docker.com/repository/docker/jiriks74/nextcloud-extended/general)
+## This image is availabe on [DockerHub](https://hub.docker.com/repository/docker/jiriks74/nextcloud-extended/general)
## Utilities added
+- `gnupg2` - Used by [Snappymail](https://github.com/the-djmaze/snappymail) to encrypt and sign emails
- `ffmpeg` - Used by [Video converter](https://github.com/PaulLereverend/NextcloudVideo_Converter) app
- `aria2` and `youtube-dl` - Used by [NCDownloader](https://github.com/shiningw/ncdownloader) app
- `libmagickcore-dev` - To fix `Module php-imagick in this instance has no SVG support` error
-## Tips
+## Setup
+I recommend using `docker compose` to set up Nextcloud as it's easier to manage than palin Docker.
+
+
+Basic docker-compose.yml
+
+> [!Important]
+>
+> Don't forget to change the passwords (similar to ``) and if you'd like to change the database name and user too.
+
+```yml
+services:
+ db:
+ image: mariadb
+ restart: always
+ command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
+ volumes:
+ - ./db:/var/lib/mysql
+ environment:
+ - MYSQL_ROOT_PASSWORD=
+ - MYSQL_PASSWORD=
+ - MYSQL_DATABASE=nextcloud
+ - MYSQL_USER=nextcloud
+ healthcheck:
+ test: mariadb-admin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
+ start_period: 5s
+ interval: 5s
+ timeout: 5s
+ retries: 55
+
+ app:
+ image: jiriks74/nextcloud-extended:stable
+ restart: always
+ ports:
+ - 80:80
+ links:
+ - db
+ - redis
+ depends_on:
+ redis:
+ condition: service_healthy
+ db:
+ condition: service_healthy
+ volumes:
+ - ./nextcloud:/var/www/html
+ - ./data:/var/www/html/data
+ environment:
+ - MYSQL_PASSWORD=
+ - MYSQL_DATABASE=nextcloud
+ - MYSQL_USER=nextcloud
+ - MYSQL_HOST=db
+ - REDIS_HOST=redis
+ - REDIS_HOST_PASSWORD=
+ healthcheck:
+ test: curl -sSf 'http://localhost/status.php' | grep '"installed":true' | grep '"maintenance":false' | grep '"needsDbUpgrade":false' || exit 1
+ interval: 10s
+ timeout: 5s
+ retries: 10
+
+ redis:
+ image: redis
+ restart: always
+ command: redis-server --requirepass
+ volumes:
+ - ./redis:/data
+ healthcheck:
+ test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
+```
+
+
+
+## Tips
### Cron job
If you're getting error simmilar to `Last job execution ran a day ago. Something seems wrong.`
@@ -26,5 +97,7 @@ try to add this to your cron tab (`sudo crontab -e`):
0,5,10,15,20,25,30,35,40,45,50,55 * * * * docker exec -u www-data php -f /var/www/html/cron.php
```
-- *Of course don't forget to change the `` to your nextcloud's container name
-(eg. `docker-nextcloud_app`)*
+> [!Important]
+>
+> *Don't forget to change the `` to your Nextcloud's container name
+> (eg. `docker-nextcloud_app`)*