* Add AzuraCast community container Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * Update Caddy readme to mention AzuraCast Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * azuracast: consolidate storage/* volumes into single storage volume Replace seven granular mounts under /var/azuracast/storage with a single nextcloud_aio_azuracast_storage volume, matching AzuraCast's official docker-compose layout. Remove nextcloud_aio_azuracast_uploads from backup_volumes (media files are captured via stations and AzuraCast's own backup archives in /var/azuracast/backups). Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * azuracast: change HTTP/HTTPS ports to 10080/10443, expose on host Use ports recommended by AzuraCast docs for reverse proxy deployments. Expose port 10080 (HTTP) with %APACHE_IP_BINDING% following the vaultwarden pattern, and port 10443 (HTTPS) on all interfaces for direct access. Update readme accordingly. Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * azuracast: replace shared volume with %NEXTCLOUD_MOUNT%, document filesystem sharing Replace the named volume nextcloud_aio_azuracast_shared with the AIO-native %NEXTCLOUD_MOUNT% mechanism. The volume is silently skipped if NEXTCLOUD_MOUNT is not configured in AIO. Update readme.md: - Document NEXTCLOUD_MOUNT as the advanced file sharing approach, with setup instructions and a comparison to the SFTP approach - Clarify default access behavior: files (mode 644) are world-readable by both processes; some AzuraCast directories (mode 700) require intervention - Document POSIX ACL commands for unlocking read-only or bidirectional access on specific paths, with a note that they must be re-run after structural changes by AzuraCast - Minor wording and formatting improvements throughout Tested on a live AzuraCast instance: rename and bidirectional move confirmed working after ACL application; containers start correctly without UMASK override. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * Update community-containers/azuracast/azuracast.json Do not expose internal HTTP port 10080 on host. Co-authored-by: Simon L. <szaimen@e.mail.de> Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * azuracast: add to community containers overview diagram Add AzuraCast entry to the Media group of the mermaid overview diagram in community-containers/readme.md, as requested by szaimen. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Nicolas Binette <biguenique@nuee.cc> * fix the json Signed-off-by: Simon L. <szaimen@e.mail.de> * Apply suggestion from @szaimen Signed-off-by: Simon L. <szaimen@e.mail.de> * Apply suggestion from @szaimen Signed-off-by: Simon L. <szaimen@e.mail.de> --------- Signed-off-by: Nicolas Binette <biguenique@nuee.cc> Signed-off-by: Simon L. <szaimen@e.mail.de> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Simon L. <szaimen@e.mail.de>
5.4 KiB
Community containers
This directory features containers that are built for AIO which allows to add additional functionality very easily.
Disclaimers
All containers that are in this directory are community maintained so the responsibility is on the community to keep them updated and secure. There is no guarantee that this will be the case in the future.
Overview
flowchart TD
%% ── Styles ───────────────────────────────────────────────────────────────────
classDef community fill:#FDEBD0,stroke:#E67E22,color:#222
classDef group fill:#FEF9E7,stroke:#F39C12,color:#333
subgraph COMM_AI["🤖 AI & Language"]
LAI(["🧠 Local AI\nPrivate AI assistant"]):::community
LT(["✏️ LanguageTool\nSpell & grammar check"]):::community
LTRANS(["🌐 LibreTranslate\nTranslation engine"]):::community
FACE(["🙂 FaceRecognition\nPhoto AI processor"]):::community
end
subgraph COMM_BACKUP["💾 Backup & Storage"]
BV(["📦 Borgbackup Viewer\nBrowse backups"]):::community
CALB(["📅 CalCardBackup\nCalendar/Contacts backup"]):::community
MINIO(["🗃️ MinIO\nS3-compatible storage"]):::community
SMB(["📂 SMB Server\nWindows file sharing"]):::community
end
subgraph COMM_EXTRA["🌟 Extra Services"]
HA(["🏠 Home Assistant\nHome automation"]):::community
STLW(["📧 Stalwart\nMail server"]):::community
NOCO(["🗂️ NocoDB\nNo-code database"]):::community
JSER(["🎯 Jellyseerr\nMedia request manager"]):::community
NOTIF(["📣 Notifications\nExternal push notify"]):::community
end
subgraph COMM_MEDIA["🎬 Media"]
PLEX(["🎞️ Plex\nMedia Server"]):::community
JELLY(["🎬 Jellyfin\nMedia Server"]):::community
DLNA(["📡 DLNA\nMedia Streaming"]):::community
MEMTR(["📸 Memories\nVideo Transcoder"]):::community
MKV(["💿 MakeMKV\nBlu-ray / DVD rip"]):::community
AZURA(["📻 AzuraCast\nRadio Station Server"]):::community
end
subgraph COMM_MONITOR["📊 Monitoring & Infra"]
GLAN(["📈 Glances\nSystem monitoring"]):::community
EXP(["📊 Nextcloud Exporter\nPrometheus metrics"]):::community
SCRU(["💽 Scrutiny\nDisk health (S.M.A.R.T.)"]):::community
CMGMT(["🐳 Container Mgmt\nDocker web console"]):::community
end
subgraph COMM_SEC["🔒 Security & Network"]
F2B(["🚫 Fail2ban\nBrute-force protection"]):::community
PIH(["🕳️ Pi-hole\nAd & DNS blocker"]):::community
VW(["🔐 Vaultwarden\nPassword Manager"]):::community
LDAP(["👥 LLDAP\nLight LDAP / Users"]):::community
CADDY(["🌐 Caddy\nReverse Proxy + Geoblocking"]):::community
NPMPLUS(["🌐 NPMplus\nNginx Proxy Manager"]):::community
end
How to use this?
Starting with v11 of AIO, the management of Community Containers is done via the AIO interface (it is the last section in the AIO interface, so only visible if you scroll down).
⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because some containers are not compatible with each other and more.
How to add containers?
Simply submit a PR by creating a new folder in this directory: https://github.com/nextcloud/all-in-one/tree/main/community-containers with the name of your container. It must include a json file with the same name and with correct syntax and a readme.md with additional information. You might get inspired by caddy, fail2ban, local-ai, libretranslate, plex, pi-hole or vaultwarden (subfolders in this directory). For a full-blown example of the json file, see https://github.com/nextcloud/all-in-one/blob/main/php/containers.json. The json-schema that it validates against can be found here: https://github.com/nextcloud/all-in-one/blob/main/php/containers-schema.json.
Is there a list of ideas for new community containers?
Yes, see this list for already existing ideas for new community containers. Feel free to pick one up and add it to this folder by following the instructions above.
How to remove containers from AIOs stack?
You can remove containers now via the web interface.
After removing the containers, there might be some data left on your server that you might want to remove. You can get rid of the data by first running sudo docker rm nextcloud-aio-container1, (adjust container1 accordingly) per community-container that you removed. Then run sudo docker image prune -a in order to remove all images that are not used anymore. As last step you can get rid of persistent data of these containers that is stored in volumes. You can check if there is some by running sudo docker volume ls and look for any volume that matches the ones that you removed. If so, you can remove them with sudo docker volume rm nextcloud_aio_volume-id (of course you need to adjust the volume-id). Please note: If you do not have CLI access to the server, you can now run docker commands via a web session by using this community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/container-management