Tipi is a homeserver for everyone! One command setup, one click installs for your favorites self-hosted apps.
Find a file
2023-03-28 22:44:03 +02:00
.devcontainer feat: adding config for codespaces 2023-01-25 20:28:36 +01:00
.github Update release.yml 2023-03-02 20:42:33 +01:00
__mocks__ feat(dashboard): add new settings form in settings page 2023-03-28 22:44:03 +02:00
prisma Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
public chore: add react-query dev tools and update lock file 2023-03-26 00:22:38 +01:00
screenshots [ImgBot] Optimize images 2022-12-20 22:24:41 +01:00
scripts Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
src feat(dashboard): add new settings form in settings page 2023-03-28 22:44:03 +02:00
templates Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
tests Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
traefik feat(update front-end to support a custom domain api): n 2022-09-04 14:54:11 +02:00
.all-contributorsrc docs: update .all-contributorsrc [skip ci] 2023-02-28 08:45:29 +01:00
.dockerignore Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
.env.example fix(events): correctly assign global.eventdispatcher 2023-03-06 00:03:41 +01:00
.env.test feat(system.service): create routes for get settings and update settings 2023-03-28 22:44:03 +02:00
.eslintignore Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
.eslintrc.js chore: create ts path aliases and add ts-reset 2023-03-28 22:44:03 +02:00
.gitignore Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
.prettierrc.js Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2022-05-13 14:04:16 +00:00
docker-compose.dev.yml fix: pass base .env to container 2023-03-06 00:03:41 +01:00
docker-compose.rc.yml fix: pass base .env to container 2023-03-06 00:03:41 +01:00
docker-compose.test.yml fix: pass base .env to container 2023-03-06 00:03:41 +01:00
docker-compose.yml fix: pass base .env to container 2023-03-06 00:03:41 +01:00
Dockerfile Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
Dockerfile.dev fix(events): correctly assign global.eventdispatcher 2023-03-06 00:03:41 +01:00
esbuild.js Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
jest.config.ts Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
LICENSE Create LICENSE 2022-04-22 10:22:43 +00:00
next-env.d.ts Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
next.config.mjs Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
nodemon.json fix(events): correctly assign global.eventdispatcher 2023-03-06 00:03:41 +01:00
package.json chore: create ts path aliases and add ts-reset 2023-03-28 22:44:03 +02:00
pnpm-lock.yaml chore: create ts path aliases and add ts-reset 2023-03-28 22:44:03 +02:00
README.md docs: update README.md [skip ci] 2023-02-28 08:45:29 +01:00
reset.d.ts chore: create ts path aliases and add ts-reset 2023-03-28 22:44:03 +02:00
sonar-project.properties Release/1.0.0 (#316) 2023-03-02 20:19:20 +01:00
tsconfig.json chore: create ts path aliases and add ts-reset 2023-03-28 22:44:03 +02:00

Tipi — A personal homeserver for everyone

All Contributors

License Version Issues Docker Pulls Docker Image Size Build codecov

Join the discussion

Discord Matrix

Preview

⚠️ 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 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 and request new ones if you don't see what you need. To get started, follow the installation instructions below.

Demo

You can try out a demo of Tipi at demo.runtipi.com using the following credentials:

username: user@runtipi.com
password: runtipi

🛠 Installation

Installation Requirements

Ubuntu 18.04 LTS or higher is recommended. However other major Linux distribution are supported but may lead to installation issues. Please file an issue if you encounter one.

Download and install Tipi

Download the latest version of Tipi:

curl -L https://setup.runtipi.com | bash

The script will prompt you the ip address of the dashboard once configured.

Commands

If you already installed Tipi, you can start it manually by running the start.sh script in the runtipi folder.

cd runtipi
sudo ./scripts/start.sh

Tipi will run by default on port 80. To select another port you can run the start script with the --port argument

sudo ./scripts/start.sh --port 7000

To stop Tipi, run the stop script.

sudo ./scripts/stop.sh

Update Tipi

To update Tipi to the latest version, run the update script.

sudo ./scripts/system.sh update

Custom settings

You can change the default settings by creating a settings.json file. The file should be located in the runtipi/state directory. This file will make your changes persist across restarts. Example file:

{
  "dnsIp": "9.9.9.9",
  "domain": "mydomain.com"
}

Available settings:

  • dnsIp - The IP address of the DNS server to use. Default: 9.9.9.9
  • domain - The domain name to use for the dashboard. Default: localhost
  • port - The port to use for the dashboard. Default: 80
  • sslPort - The port to use for the dashboard with SSL. Default: 443
  • listenIp - The IP address to listen on. Default: automatically detected
  • storagePath - The path to use for storing data. Default: runtipi/app-data

Linking a domain to your dashboard

If you want to link a domain to your dashboard, you can do so by providing the --domain option in the start script.

sudo ./scripts/start.sh --domain mydomain.com

You can also specify it in the settings.json file as shown in the previous section to keep the setting saved across restarts.

A Let's Encrypt certificate will be generated and installed automatically. Make sure to have ports 80 and 443 open on your firewall and that your domain has an A record pointing to your server IP.

Please note that this setting will only expose the dashboard. If you want to expose other apps, you need to configure them individually. You cannot use the --domain option to expose apps.

This option will only work if you keep the default port 80 and 443 for the dashboard.

Uninstalling Tipi

Make sure Tipi is completely stopped and then remove the runtipi directory.

sudo ./scripts/stop.sh
cd ..
sudo rm -rf runtipi

📚 Documentation

For a detailed guide on how to install Tipi. This amazing article by @kycfree Running a Home Server with Tipi

You can find more documentation and tutorials / FAQ in the Wiki.

❤️ Contributing

Tipi is made to be very easy to plug in new apps. We welcome and appreciate new contributions.

If you want to add a new app or feature, you can follow the Contribution guide for instructions on how to do so.

We are looking for contributions of all kinds. If you know design, development, or have ideas for new features, please get in touch.

📜 License

License

Tipi is licensed under the GNU General Public License v3.0. TL;DR — You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.

The bash script app.sh located in the scripts folder contains some snippets from Umbrel's code. Therefore some parts of the code are licensed under the PolyForm Noncommercial License 1.0.0 license. You can for now consider the whole file under this license. We are actively working on re-writing those parts in order to make them available under the GPL license like the rest of our code.

🗣 Community

Contributors

Thanks goes to these wonderful people (emoji key):

Nicolas Meienberger
Nicolas Meienberger

💻 🚇 ⚠️ 📖
ArneNaessens
ArneNaessens

💻 🤔 ⚠️
DrMxrcy
DrMxrcy

💻 🤔 ⚠️
Cooper
Cooper

💻
JTruj1ll0923
JTruj1ll0923

💻
Stetsed
Stetsed

💻
Jones_Town
Jones_Town

💻
Rushi Chaudhari
Rushi Chaudhari

💻
Robert Blaine
Robert Blaine

💻
Seth For Privacy
Seth For Privacy

💻
Prajna
Prajna

💻
Justin Moy
Justin Moy

💻
dextreem
dextreem

💻
Brahim Hadriche
Brahim Hadriche

💻
Andrew Brereton
Andrew Brereton

🖋
Freddie Sackur
Freddie Sackur

💻 📖

This project follows the all-contributors specification. Contributions of any kind welcome!