From dbbbc76098bf9cb48e3b62e63a9a925d4fc0bde7 Mon Sep 17 00:00:00 2001 From: Jean-Yves <7360784+docjyJ@users.noreply.github.com> Date: Mon, 17 Jun 2024 13:55:43 +0200 Subject: [PATCH] community-containers: Add NocoDB (#4835) Co-authored-by: Simon L. Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com> --- community-containers/caddy/readme.md | 7 ++-- community-containers/nocodb/nocodb.json | 43 +++++++++++++++++++++++++ community-containers/nocodb/readme.md | 28 ++++++++++++++++ 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 community-containers/nocodb/nocodb.json create mode 100644 community-containers/nocodb/readme.md diff --git a/community-containers/caddy/readme.md b/community-containers/caddy/readme.md index 94700b6b..fcb71964 100644 --- a/community-containers/caddy/readme.md +++ b/community-containers/caddy/readme.md @@ -1,13 +1,14 @@ ## Caddy with geoblocking -This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin by listening on `media.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap by listening on `ldap.$NC_DOMAIN`, if installed. +This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin by listening on `media.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap by listening on `ldap.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb by listening on `tables.$NC_DOMAIN`, if installed. ### Notes - This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time! - Make sure that no other service is using port 443 on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep 443` before installing AIO. - If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, make sure that you point `bw.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden. - If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart, make sure that you point `mail.your-nc-domain.com` to your server using an A, AAAA or CNAME record so that caddy can get a certificate automatically for stalwart. -- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, make sure that you point `media.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden. -- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap, make sure that you point `ldap.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden. +- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, make sure that you point `media.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyfin. +- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap, make sure that you point `ldap.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for lldap. +- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb, make sure that you point `tables.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nocodb. - After the container was started the first time, you should see a new `nextcloud-aio-caddy` folder and inside there an `allowed-countries.txt` file when you open the files app with the default `admin` user. In there you can adjust the allowed country codes for caddy by adding them to the first line, e.g. `IT FR` would allow access from italy and france. Private ip-ranges are always allowed. Additionally, in order to activate this config, you need to get an account at https://dev.maxmind.com/geoip/geolite2-free-geolocation-data and download the `GeoLite2-Country.mmdb` and upload it with this exact name into the `nextcloud-aio-caddy` folder. Afterwards restart all containers from the AIO interface and your new config should be active! - You can add your own Caddy configurations in `/data/caddy-imports/` inside the Caddy container (`sudo docker exec -it nextcloud-aio-caddy bash`). These will be imported on container startup. - See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack diff --git a/community-containers/nocodb/nocodb.json b/community-containers/nocodb/nocodb.json new file mode 100644 index 00000000..8a915c2f --- /dev/null +++ b/community-containers/nocodb/nocodb.json @@ -0,0 +1,43 @@ +{ + "aio_services_v1": [ + { + "container_name": "nextcloud-aio-nocodb", + "display_name": "NocoDB", + "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb", + "image": "docjyj/aio-nocodb", + "image_tag": "%AIO_CHANNEL%", + "internal_port": "10028", + "restart": "unless-stopped", + "ports": [ + { + "ip_binding": "%APACHE_IP_BINDING%", + "port_number": "10028", + "protocol": "tcp" + } + ], + "environment": [ + "NC_AUTH_JWT_SECRET=%NOCODB_JWT_SECRET%", + "NC_PUBLIC_URL=https://tables.%NC_DOMAIN%/", + "NC_DASHBOARD_URL=/", + "NC_ADMIN_EMAIL=admin@noco.db", + "NC_ADMIN_PASS=%NOCODB_USER_PASS%", + "PORT=10028", + "NC_DISABLE_TELE=true" + ], + "secrets": [ + "NOCODB_JWT_SECRET", + "NOCODB_USER_PASS" + ], + "volumes": [ + { + "source": "nextcloud_aio_nocodb", + "destination": "/usr/app/data", + "writeable": true + } + ], + "backup_volumes": [ + "nextcloud_aio_nocodb" + ] + } + ] +} diff --git a/community-containers/nocodb/readme.md b/community-containers/nocodb/readme.md new file mode 100644 index 00000000..8d528928 --- /dev/null +++ b/community-containers/nocodb/readme.md @@ -0,0 +1,28 @@ +> [!NOTE] +> This container is there to compensate for the lack of functionality in Nextcloud Tables. +> +> When Nextcloud Tables V2 is released, I will stop checking for updates, and will no longer fix any potential issues. +> +> Some missing functionality in Nextcloud Tables: +> - Multiple view layout (Gantt, Kanban, Calendar...) +> - Field (Person, Tag, File...) +> - See more here https://github.com/nextcloud/tables/issues/103 + +## NocoDb server +This container bundles NocoDb without synchronization with Nextcloud. + +This is an alternative of **Airtable**. + +### Notes +- You need to configure a reverse proxy in order to run this container since nocodb needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy. +- Currently, only `tables.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, nocodb will use `tables.your-domain.com`. +- The data of NocoDb will be automatically included in AIOs backup solution! +- After adding and starting the container, you need to run `docker inspect nextcloud-aio-nocodb | grep NC_ADMIN_PASS` to obtain the system administrator password (username: `admin@noco.db`). With this information, you can log in to the web interface at `https://tables.$NC_DOMAIN/#/signin` +- See https://docs.nocodb.com/ for usage of NocoDb +- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack + +### Repository +https://github.com/docjyJ/aio-nocodb + +### Maintainer +https://github.com/docjyJ