This repository contains the complete Docker stack needed to run Invision Community 4.7.
git clone https://github.com/krbob/docker-invision-community.git
cd docker-invision-communityCopy the dotenv file to .env and adjust the values in the .env file.
Run the containers:
docker-compose up -dAfter the first run, you may also want to generate a certificate and initialize the repository for backups:
docker exec certbot certbot.sh certonly && docker-compose restart apache
docker exec restic /bin/sh -c 'restic -r $RESTIC_REPOSITORY init'You might also want to enable memory-overcommit on the host to eliminate the Redis warning:
echo "vm.overcommit_memory = 1" | sudo tee /etc/sysctl.d/memory-overcommit.conf- The image includes PHP FPM and SSL configuration.
- A Snakeoil certificate is generated for localhost testing purposes.
- All traffic is redirected to HTTPS.
- Requests without a domain are forbidden.
acme-challengesupport is added.RemoteIPHeadersupport for Cloudflare is included.- Scripts
create-backup.shandrestore-backup.shcreate and restore backups of www files, respectively.
- The
certbot.shscript generates a new certificate or renews it using the webroot method, depending on thecertonlyandrenewoptions.
Periodically runs:
- IPS Task
- Logrotate
- Certificate renewal
- Creating and sending backups
- By default, it retains 5 weeks of logs.
- The default
innodb_buffer_pool_sizeis 512 MB. - Scripts
create-backup.shandrestore-backup.shcreate and restore database backups, respectively.
- The image includes all extensions used by IPS.
- The default
pm.max_childrenis 10. - The default
memory_limitis 256 MB,upload_max_filesizeis 32 MB, andpost_max_sizeis 64 MB. - Default locales are defined in the
locale.genfile (necessary for IPS translations). - The
ips-task.shscript retrieves the required key from the database and executes the IPS task.
- The default maximum memory usage is 128 MB.
- The
publish-backup.shandrestore-latest-backups.shscripts send and retrieve the latest backup files, respectively. - To use a previous snapshot, you can use:
docker exec restic restic snapshots
docker exec restic restic restore <snapshot_id> --target / --include /var/backup/db/ips.sql
docker exec restic restic restore <snapshot_id> --target / --include /var/backup/www/ips.tar.gzThe update-stack.sh script rebuilds the stack using the latest versions of the base images.
- Configuration of a test instance
- Configuration of service monitoring on Grafana Cloud
Feel free to contribute to the project by submitting issues or pull requests. Any suggestions for improvements are welcome.