From c00994a116160a4b37d84128286d93213ea1556a Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Mon, 29 Aug 2022 21:26:46 +0200 Subject: [PATCH 1/4] feat(app): bookstack --- apps/bookstack/config.json | 25 ++++++++++++++++ apps/bookstack/docker-compose.yml | 40 +++++++++++++++++++++++++ apps/bookstack/metadata/description.md | 5 ++++ apps/bookstack/metadata/logo.jpg | Bin 0 -> 28894 bytes 4 files changed, 70 insertions(+) create mode 100644 apps/bookstack/config.json create mode 100644 apps/bookstack/docker-compose.yml create mode 100644 apps/bookstack/metadata/description.md create mode 100644 apps/bookstack/metadata/logo.jpg diff --git a/apps/bookstack/config.json b/apps/bookstack/config.json new file mode 100644 index 00000000..490eede8 --- /dev/null +++ b/apps/bookstack/config.json @@ -0,0 +1,25 @@ +{ + "$schema": "../schema.json", + "name": "Bookstack", + "available": true, + "port": 8119, + "id": "bookstack", + "tipi_version": 1, + "version": "22.07.3", + "description": "BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. Default login: admin@admin.com password: password", + "short_desc": "BookStack is a self-hosted platform for organising and storing information.", + "author": "Dan Brown", + "categories": ["Data"], + "website": "https://www.bookstackapp.com/", + "source": "https://github.com/BookStackApp/BookStack", + "form_fields": [ + { + "type": "random", + "label": "Database password", + "required": false, + "min": 30, + "max": 30, + "env_variable": "BOOKSTACK_DB_PASS" + } + ] +} diff --git a/apps/bookstack/docker-compose.yml b/apps/bookstack/docker-compose.yml new file mode 100644 index 00000000..86521cb5 --- /dev/null +++ b/apps/bookstack/docker-compose.yml @@ -0,0 +1,40 @@ + +version: "3.9" +services: + bookstack: + image: lscr.io/linuxserver/bookstack:22.07.3 + container_name: bookstack + environment: + - PUID=1000 + - PGID=1000 + - APP_URL=${INTERNAL_IP}:${APP_PORT} + - DB_HOST=bookstack_db + - DB_USER=tipi + - DB_PASS=${BOOKSTACK_DB_PASS} + - DB_DATABASE=bookstackapp + volumes: + - ${APP_DATA_DIR}/data/config:/config + ports: + - ${APP_PORT}:80 + restart: unless-stopped + depends_on: + - bookstack-db + networks: + - tipi_main_network + + bookstack-db: + image: lscr.io/linuxserver/mariadb + container_name: bookstack-db + environment: + - PUID=1000 + - PGID=1000 + - MYSQL_ROOT_PASSWORD=${BOOKSTACK_DB_PASS} + - TZ=${TZ} + - MYSQL_DATABASE=bookstackapp + - MYSQL_USER=tipi + - MYSQL_PASSWORD=${BOOKSTACK_DB_PASS} + volumes: + - ${APP_DATA_DIR}/data/db:/config + restart: unless-stopped + networks: + - tipi_main_network \ No newline at end of file diff --git a/apps/bookstack/metadata/description.md b/apps/bookstack/metadata/description.md new file mode 100644 index 00000000..26e6335b --- /dev/null +++ b/apps/bookstack/metadata/description.md @@ -0,0 +1,5 @@ +BookStack is an opinionated wiki system that provides a pleasant and simple out-of-the-box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. + +BookStack is not designed as an extensible platform to be used for purposes that differ to the statement above. + +In regard to development philosophy, BookStack has a relaxed, open & positive approach. At the end of the day this is free software developed and maintained by people donating their own free time. \ No newline at end of file diff --git a/apps/bookstack/metadata/logo.jpg b/apps/bookstack/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de8aa4d1ead560816943c37b5145a89a36d0b36e GIT binary patch literal 28894 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 z

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 TgSDZeT Date: Mon, 29 Aug 2022 21:28:29 +0200 Subject: [PATCH 2/4] fix(bookstack): typo in category name --- apps/bookstack/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bookstack/config.json b/apps/bookstack/config.json index 490eede8..16e42811 100644 --- a/apps/bookstack/config.json +++ b/apps/bookstack/config.json @@ -9,7 +9,7 @@ "description": "BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. Default login: admin@admin.com password: password", "short_desc": "BookStack is a self-hosted platform for organising and storing information.", "author": "Dan Brown", - "categories": ["Data"], + "categories": ["data"], "website": "https://www.bookstackapp.com/", "source": "https://github.com/BookStackApp/BookStack", "form_fields": [ From 6095c110fb370a4a04b2efbe7f489fa296763a83 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Mon, 29 Aug 2022 21:32:25 +0200 Subject: [PATCH 3/4] fix(bookstack): add dns setting --- apps/bookstack/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/bookstack/docker-compose.yml b/apps/bookstack/docker-compose.yml index 86521cb5..58c9e1d6 100644 --- a/apps/bookstack/docker-compose.yml +++ b/apps/bookstack/docker-compose.yml @@ -14,6 +14,8 @@ services: - DB_DATABASE=bookstackapp volumes: - ${APP_DATA_DIR}/data/config:/config + dns: + - ${DNS_IP} ports: - ${APP_PORT}:80 restart: unless-stopped From 51e82f8e319e0624a29b5ea5d229e49e6083c997 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Mon, 29 Aug 2022 22:21:34 +0200 Subject: [PATCH 4/4] fix: app-url variable --- README.md | 1 + apps/bookstack/docker-compose.yml | 14 ++++---------- apps/bookstack/metadata/description.md | 7 ++++++- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 894d6314..920ec906 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ This is the official repository for the Tipi App Store. It contains all the apps ## Apps available - [Adguard Home](https://github.com/AdguardTeam/AdGuardHome) - Adguard Home DNS adblocker - [Booksonic](https://github.com/popeen) - A server for streaming your audiobooks +- [Bookstack](https://github.com/BookStackApp/BookStack) - Simple, easy-to-use platform for organising and storing information. - [Calibre-Web](https://github.com/janeczku/calibre-web) - Web Ebook Reader - [Code-Server](https://github.com/coder/code-server) - Web VS Code - [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser diff --git a/apps/bookstack/docker-compose.yml b/apps/bookstack/docker-compose.yml index 58c9e1d6..6731286b 100644 --- a/apps/bookstack/docker-compose.yml +++ b/apps/bookstack/docker-compose.yml @@ -1,16 +1,13 @@ - version: "3.9" services: bookstack: image: lscr.io/linuxserver/bookstack:22.07.3 container_name: bookstack environment: - - PUID=1000 - - PGID=1000 - - APP_URL=${INTERNAL_IP}:${APP_PORT} - - DB_HOST=bookstack_db - - DB_USER=tipi - - DB_PASS=${BOOKSTACK_DB_PASS} + - APP_URL=http://${INTERNAL_IP}:${APP_PORT} + - DB_HOST=bookstack-db + - DB_USERNAME=tipi + - DB_PASSWORD=${BOOKSTACK_DB_PASS} - DB_DATABASE=bookstackapp volumes: - ${APP_DATA_DIR}/data/config:/config @@ -28,9 +25,6 @@ services: image: lscr.io/linuxserver/mariadb container_name: bookstack-db environment: - - PUID=1000 - - PGID=1000 - - MYSQL_ROOT_PASSWORD=${BOOKSTACK_DB_PASS} - TZ=${TZ} - MYSQL_DATABASE=bookstackapp - MYSQL_USER=tipi diff --git a/apps/bookstack/metadata/description.md b/apps/bookstack/metadata/description.md index 26e6335b..4d4e5383 100644 --- a/apps/bookstack/metadata/description.md +++ b/apps/bookstack/metadata/description.md @@ -2,4 +2,9 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out- BookStack is not designed as an extensible platform to be used for purposes that differ to the statement above. -In regard to development philosophy, BookStack has a relaxed, open & positive approach. At the end of the day this is free software developed and maintained by people donating their own free time. \ No newline at end of file +In regard to development philosophy, BookStack has a relaxed, open & positive approach. At the end of the day this is free software developed and maintained by people donating their own free time. + +## Credentials + +Username: admin@admin.com +Password: password \ No newline at end of file