From 937b709d75313542748016aa4fed28e7eab6578d Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Wed, 7 Dec 2022 10:16:53 +0100 Subject: [PATCH] docs: update readme --- README.md | 15 +++---- pnpm-lock.yaml | 105 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 101 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 8065c271..48b5af2d 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,14 @@ > ⚠️ Tipi is still at an early stage of development and issues are to be expected. Feel free to open an issue or pull request if you find a bug. -Tipi is a personal homeserver orchestrator. It is running docker containers under the hood and provides a simple web interface to manage them. Every service comes with an opinionated configuration in order to remove the need for manual configuration and network setup. +Tipi is a personal homeserver orchestrator that makes it easy to manage and run multiple services on a single server. It is based on Docker and comes with a simple web interface to manage your services. Tipi is designed to be easy to use, so you don't have to worry about manual configuration or networking. Simply install Tipi on your server and use the web interface to add and manage services. You can see a list of available services in the [App Store repo](https://github.com/meienberger/runtipi-appstore) and request new ones if you don't see what you need. To get started, follow the installation instructions below. -Check our demo instance : **[demo.runtipi.com](https://demo.runtipi.com)** / username: **user@runtipi.com** / password: **runtipi** +## Demo -## Apps available +You can try out a demo of Tipi at [demo.runtipi.com](demo.runtipi.com) using the following credentials: -See the list of apps available and submit your requests in the [App Store repo](https://github.com/meienberger/runtipi-appstore) + username: user@runtipi.com + password: runtipi ## 🛠 Installation @@ -39,7 +40,7 @@ Ubuntu 18.04 LTS or higher is recommended. However other major Linux distributio ### Step 1. Download Tipi -Run this in an empty directory where you want to install Tipi. +Download the latest version of Tipi from GitHub: ```bash git clone https://github.com/meienberger/runtipi.git @@ -47,7 +48,7 @@ git clone https://github.com/meienberger/runtipi.git ### Step 2. Run Tipi -cd into the downloaded directory and run the start script. +Navigate to the downloaded directory and run the `start.sh` script to start Tipi: ```bash cd runtipi @@ -115,7 +116,7 @@ sudo rm -rf runtipi ## 📚 Documentation -For a detailed guide on how to install Tipi. This amazing article by @kycfree1 [Running a Home Server with Tipi](https://kyc3.life/running-a-home-server-with-tipi/) +For a detailed guide on how to install Tipi. This amazing article by @kycfree [Running a Home Server with Tipi](https://kyc3.life/running-a-home-server-with-tipi/) You can find more documentation and tutorials / FAQ in the [Wiki](https://github.com/meienberger/runtipi/wiki). diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02d317be..213f7873 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,7 +123,9 @@ importers: packages/system-api: specifiers: + '@apollo/utils.keyvadapter': ^1.1.2 '@faker-js/faker': ^7.3.0 + '@keyv/redis': ^2.5.3 '@swc/cli': ^0.1.57 '@swc/core': ^1.2.210 '@types/cors': ^2.8.12 @@ -160,6 +162,7 @@ importers: http: 0.0.1-security jest: ^28.1.0 jsonwebtoken: ^8.5.1 + keyv: ^4.5.2 node-cache: ^5.1.2 node-cron: ^3.0.1 nodemon: ^2.0.15 @@ -179,6 +182,8 @@ importers: winston: ^3.7.2 zod: ^3.19.1 dependencies: + '@apollo/utils.keyvadapter': 1.1.2 + '@keyv/redis': 2.5.4 apollo-server-core: 3.10.0_graphql@15.8.0 apollo-server-express: 3.9.0_jfj6k5cqxqbusbdzwqjdzioxzm argon2: 0.29.1 @@ -192,6 +197,7 @@ importers: graphql-type-json: 0.3.2_graphql@15.8.0 http: 0.0.1-security jsonwebtoken: 8.5.1 + keyv: 4.5.2 node-cache: 5.1.2 node-cron: 3.0.1 pg: 8.7.3 @@ -325,6 +331,14 @@ packages: graphql: 15.8.0 dev: false + /@apollo/utils.keyvadapter/1.1.2: + resolution: {integrity: sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==} + dependencies: + '@apollo/utils.keyvaluecache': 1.0.1 + dataloader: 2.1.0 + keyv: 4.5.2 + dev: false + /@apollo/utils.keyvaluecache/1.0.1: resolution: {integrity: sha512-nLgYLomqjVimEzQ4cdvVQkcryi970NDvcRVPfd0OPeXhBfda38WjBq+WhQFk+czSHrmrSp34YHBxpat0EtiowA==} dependencies: @@ -2803,6 +2817,10 @@ packages: resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} dev: true + /@ioredis/commands/1.2.0: + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + dev: false + /@istanbuljs/load-nyc-config/1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -3118,6 +3136,15 @@ packages: '@jridgewell/resolve-uri': 3.0.7 '@jridgewell/sourcemap-codec': 1.4.13 + /@keyv/redis/2.5.4: + resolution: {integrity: sha512-27MTiJFME3R13fPiiOV/ww550gU9Zc75eJkzD+EpwRXcgunjcXcYEw1cM9XyaEI5y0aS1PPknRjKGlYRjT8nTQ==} + engines: {node: '>= 12'} + dependencies: + ioredis: 5.2.4 + transitivePeerDependencies: + - supports-color + dev: false + /@mapbox/node-pre-gyp/1.0.9: resolution: {integrity: sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==} hasBin: true @@ -5626,7 +5653,6 @@ packages: /dataloader/2.1.0: resolution: {integrity: sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==} - dev: true /date-fns/1.30.1: resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} @@ -5759,6 +5785,11 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false + /denque/2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + dev: false + /depd/2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -7566,6 +7597,23 @@ packages: dependencies: loose-envify: 1.4.0 + /ioredis/5.2.4: + resolution: {integrity: sha512-qIpuAEt32lZJQ0XyrloCRdlEdUUNGG9i0UOk6zgzK6igyudNWqEBxfH6OlbnOOoBBvr1WB02mm8fR55CnikRng==} + engines: {node: '>=12.22.0'} + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.1 + debug: 4.3.4 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /ipaddr.js/1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -8466,6 +8514,10 @@ packages: resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} dev: true + /json-buffer/3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + /json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -8565,6 +8617,12 @@ packages: json-buffer: 3.0.0 dev: true + /keyv/4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} + dependencies: + json-buffer: 3.0.1 + dev: false + /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -8698,12 +8756,20 @@ packages: p-locate: 5.0.0 dev: true + /lodash.defaults/4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + dev: false + /lodash.get/4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} /lodash.includes/4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + /lodash.isarguments/3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + dev: false + /lodash.isboolean/3.0.3: resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} @@ -10169,17 +10235,17 @@ packages: tslib: 2.4.0 dev: false - /postcss-js/4.0.0_postcss@8.4.14: + /postcss-js/4.0.0_postcss@8.4.13: resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.14 + postcss: 8.4.13 dev: true - /postcss-load-config/3.1.4_postcss@8.4.14: + /postcss-load-config/3.1.4_postcss@8.4.13: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -10192,17 +10258,17 @@ packages: optional: true dependencies: lilconfig: 2.0.5 - postcss: 8.4.14 + postcss: 8.4.13 yaml: 1.10.2 dev: true - /postcss-nested/5.0.6_postcss@8.4.14: + /postcss-nested/5.0.6_postcss@8.4.13: resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.14 + postcss: 8.4.13 postcss-selector-parser: 6.0.10 dev: true @@ -10234,7 +10300,6 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /postgres-array/2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} @@ -10634,6 +10699,18 @@ packages: strip-indent: 3.0.0 dev: true + /redis-errors/1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + dev: false + + /redis-parser/3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + dependencies: + redis-errors: 1.2.0 + dev: false + /redis/4.4.0: resolution: {integrity: sha512-tQyFG6O9iewLxxHYRyirJNklhe2QI7M/0o8q0jk7D9Z/Cxh/7oZrQyHKyjWz0TkkCls8ool/xvhL9K8zRnkaYQ==} dependencies: @@ -11144,6 +11221,10 @@ packages: escape-string-regexp: 2.0.0 dev: true + /standard-as-callback/2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + dev: false + /statuses/2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -11407,10 +11488,10 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.14 - postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 3.1.4_postcss@8.4.14 - postcss-nested: 5.0.6_postcss@8.4.14 + postcss: 8.4.13 + postcss-js: 4.0.0_postcss@8.4.13 + postcss-load-config: 3.1.4_postcss@8.4.13 + postcss-nested: 5.0.6_postcss@8.4.13 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 quick-lru: 5.1.1