Container w/ NGINX, PHP, & H5AI
Go to file
Daniel Wolf d7563aed15
Build Container Image / buildamd64 (push) Successful in 1m21s Details
Build Container Image / packageamd64 (push) Successful in 26s Details
Build Container Image / publishamd64 (push) Successful in 38s Details
Build Container Image / buildarm64 (push) Successful in 2m35s Details
Build Container Image / packagearm64 (push) Successful in 25s Details
Build Container Image / manifestpkg (push) Successful in 12s Details
Build Container Image / publisharm64 (push) Successful in 28s Details
Build Container Image / manifesthub (push) Successful in 17s Details
migrate from drone to gitea-runner
2023-05-01 13:52:40 -04:00
.gitea/workflows migrate from drone to gitea-runner 2023-05-01 13:52:40 -04:00
override/etc migrate setup to s6-rc 2022-03-04 15:56:53 -05:00
.dockerignore migrate from drone to gitea-runner 2023-05-01 13:52:40 -04:00
.gitignore update .gitignore 2022-03-04 15:34:09 -05:00
Dockerfile migrate from drone to gitea-runner 2023-05-01 13:52:40 -04:00
LICENSE.md migrate from drone to gitea-runner 2023-05-01 13:52:40 -04:00
README.md migrate from drone to gitea-runner 2023-05-01 13:52:40 -04:00

README.md

Git | Docker | unRAID

H5AI Web Index

This docker container manages the NGINX application with the H5AI PHP web server index application.

Just put files and folders into the volume mapped to /mnt/media and they will be made accessible through the web interface. For private files, you can either lock them down via the NGINX config or use a container that is not publicly accessible in the first place.

If using this as a standalone web server, you can configure TLS the same way as the nginx-ssl container. If part of a larger envinronment, we suggest using a separate container as a reverse proxy server and handle TLS there instead.

You can spin up a quick temporary test container like this:

docker run --rm -p 80:80 -it nephatrine/nginx-h5ai:latest /bin/bash

Remember to change the password in the h5ai configuration as the info page might expose information about your server that you do not want exposed.

Docker Tags

  • nephatrine/nginx-h5ai:latest: H5AI 0.31.0-glubsy / Alpine Latest

Configuration Variables

You can set these parameters using the syntax -e "VARNAME=VALUE" on your docker run command. Some of these may only be used during initial configuration and further changes may need to be made in the generated configuration files.

  • ADMINIP: Administrator IP (127.0.0.1) (INITIAL CONFIG)
  • DNSADDR: Resolver IPs (8.8.8.8 8.8.4.4) (INITIAL CONFIG)
  • PUID: Mount Owner UID (1000)
  • PGID: Mount Owner GID (100)
  • TRUSTSN: Trusted Subnet (192.168.0.0/16) (INITIAL CONFIG)
  • TZ: System Timezone (America/New_York)

Persistent Mounts

You can provide a persistent mountpoint using the -v /host/path:/container/path syntax. These mountpoints are intended to house important configuration files, logs, and application state (e.g. databases) so they are not lost on image update.

  • /mnt/config: Persistent Data.
  • /mnt/media: Indexed Location.

Do not share /mnt/config volumes between multiple containers as they may interfere with the operation of one another.

The /mnt/media/ volume will have an _h5ai folder created in it, but otherwise will not be modified.

You can perform some basic configuration of the container using the files and directories listed below.

  • /mnt/config/etc/crontabs/<user>: User Crontabs.
  • /mnt/config/etc/logrotate.conf: Logrotate Global Configuration.
  • /mnt/config/etc/logrotate.d/: Logrotate Additional Configuration.
  • /mnt/config/etc/mime.type: NGINX MIME Types.
  • /mnt/config/etc/nginx.conf: NGINX Configuration.
  • /mnt/config/etc/nginx.d/: NGINX Configuration.
  • /mnt/config/etc/php.d/*: PHP Extension Configuration
  • /mnt/config/etc/php.ini: PHP General Configuration
  • /mnt/config/etc/php-fpm.conf: PHP-FPM General Configuration
  • /mnt/config/etc/php-fpm.d/*: PHP-FPM Per-Site Configuration
  • /mnt/media/_h5ai/private/conf/options.json: H5AI Configuration

[*] Changes to some configuration files may require service restart to take immediate effect.

Network Services

This container runs network services that are intended to be exposed outside the container. You can map these to host ports using the -p HOST:CONTAINER or -p HOST:CONTAINER/PROTOCOL syntax.

  • 80/tcp: HTTP Server. This is the default insecure web server.