diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
new file mode 100644
index 0000000..9c97744
--- /dev/null
+++ b/.github/workflows/docker-image.yml
@@ -0,0 +1,53 @@
+name: Build Docker image
+
+on:
+ push:
+# branches:
+# - 'master'
+ tags:
+ - 'v*'
+ pull_request:
+ branches:
+ - 'master'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - # Check out repository
+ name: Checkout
+ uses: actions/checkout@v3
+ - # Set up QEMU for multiarch support
+ name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+ - # Set up Docker BuildX for Docker image building
+ name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@v1
+ - # Set proper tags
+ name: Docker metadata
+ id: docker_meta # you'll use this in the next step
+ uses: docker/metadata-action@v3
+ with:
+ images: bilde2910/hauk
+ tags: |
+ type=ref,event=branch
+ type=ref,event=pr
+ type=semver,pattern=v{{version}}
+ type=semver,pattern=stable-{{major}}.x
+ - # Log in to Docker Hub
+ name: Login to Docker Hub
+ if: github.event_name != 'pull_request'
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - # Build and push
+ name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ context: .
+ platforms: linux/amd64,linux/arm/v7,linux/arm64
+ push: ${{ github.event_name != 'pull_request' }}
+ tags: ${{ steps.docker_meta.outputs.tags }}
+ labels: ${{ steps.docker_meta.outputs.labels }}
diff --git a/Dockerfile b/Dockerfile
index fb015cb..20b370e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,7 +4,7 @@ COPY frontend/ /var/www/html/
COPY docker/start.sh .
RUN apt-get update && \
- apt-get install -y memcached libmemcached-dev zlib1g-dev libldap2-dev && \
+ apt-get install -y memcached libmemcached-dev zlib1g-dev libldap2-dev libssl-dev && \
pecl install memcached && \
docker-php-ext-enable memcached && \
docker-php-ext-configure ldap --with-libdir=lib/*-linux-gnu*/ && \
diff --git a/README.md b/README.md
index 976f0d9..8839672 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,8 @@ phone, and you're good to go!
to install Hauk in, for example `/var/www/html`. Follow the instructions
given by the install script. Make sure to set a secure hashed password and
edit your site's domain in the configuration file after installation.
-3. Start the web server and make sure Memcached or Redis is running.
+3. Start the web server and make sure Memcached or Redis is running and
+ [properly configured and firewalled](https://github.com/bilde2910/Hauk/wiki/FAQ#how-do-i-securely-configure-memcachedredis).
4. Install the companion Android app (from your favourite store linked above)
on your phone and enter your server's settings.
@@ -50,7 +51,8 @@ files manually.
in your web root, for example `/var/www/html`.
3. Modify `include/config.php` to your liking. Make sure to set a secure hashed
password and edit your site's domain in this file.
-4. Start the web server and make sure Memcached or Redis is running.
+4. Start the web server and make sure Memcached or Redis is running and
+ [properly configured and firewalled](https://github.com/bilde2910/Hauk/wiki/FAQ#how-do-i-securely-configure-memcachedredis).
5. Install the companion Android app (from your favourite store linked above)
on your phone and enter your server's settings.
@@ -126,6 +128,22 @@ server {
}
```
+## Upgrading to newer versions
+
+Hauk is versioned according to [Semantic Versioning 2.0.0](https://semver.org/). Any update that is **not a major update** is guaranteed to be without breaking changes, and you can keep the same configuration file for the updated release.
+
+- Major updates add breaking changes that either require manual intervention, or breaks backward compatibility. Update instructions for major versions will be listed in the release notes, as well as either this README or in the wiki. To date there have been no major updates.
+- Minor updates add functionality, but does not break backward compatibility. You can still use an older client on a newer server, or a newer client on an older server, though some functionality may be missing. This will be dynamically detected by the client and server, which could e.g. lead to some UI elements being disabled in the app, or a notification made if a user tries to use new functionality that the other endpoint does not support.
+- Patch updates are primarily bugfixes.
+
+Aside from certain major changes, you can keep your configuration file. New options may have been added to the config, but these will have sane defaults applied automatically. If you wish to change any new options, you can either reconfigure Hauk from the new config.php template, or copy and paste the relevant options from the new template to your existing file and change the appropriate values.
+
+Installations done using either the installer (`install.sh`) or via manual file copy can be upgraded simply by pulling the latest version of this repository and running the installer again, or overwriting the installation with the new files.
+
+Installations done via distribution-specific packages will be updated to the latest version by your package manager.
+
+Docker installations will be updated whenever you pull the image. If you're using Docker, you can reserve yourself from receiving major updates (which may contain breaking changes) by using the `stable-*` tag instead of `latest`. If you use a specific versioned tag, your installation will be locked at that specific version and you will not receive feature updates or bugfixes unless you manually change the tag and pull.
+
## Demo server
If you'd like to see what Hauk can do, download the app and insert connection details for the demo server:
diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml
index 674414f..305e2ab 100644
--- a/android/.idea/gradle.xml
+++ b/android/.idea/gradle.xml
@@ -4,17 +4,17 @@
diff --git a/android/.idea/jarRepositories.xml b/android/.idea/jarRepositories.xml
new file mode 100644
index 0000000..a5f05cd
--- /dev/null
+++ b/android/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml
index 82fb904..541f4e0 100644
--- a/android/.idea/misc.xml
+++ b/android/.idea/misc.xml
@@ -5,7 +5,7 @@