---
id: installation
title: ⚒️ Installation
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
Let's get started with SwiftWave! It will not take more than 10 minutes to install SwiftWave on your server.
## 📦 Pre-requisites
1. A Linux System with at-least 1GB RAM and 1vCPU.
2. Install some utilities like curl, git, unzip and tar.
```bash
sudo apt update -y
sudo apt install curl git unzip tar -y
```
```bash
sudo dnf install curl git unzip tar
```
3. Install docker (Skip this step if you already have docker installed)
```bash
curl -fsSL https://get.docker.com | sudo bash -
```
```bash
curl -fsSL https://get.docker.com | sudo bash -
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo systemctl start docker.service
sudo systemctl start containerd.service
```
4. You are all set! 🎉
## 📥 Installation
1. SSH into your server.
2. Run below commands to install SwiftWave.
Add Swiftwave Repository
```bash
sudo mkdir -p /etc/apt/keyrings
sudo mkdir /root/.gnupg
sudo gpg --no-default-keyring --keyring /etc/apt/keyrings/swiftwave.gpg --keyserver keyserver.ubuntu.com --recv-keys DD510C86CD3F6764
echo "deb [signed-by=/etc/apt/keyrings/swiftwave.gpg] http://deb.repo.swiftwave.org/ swiftwave stable" | sudo tee /etc/apt/sources.list.d/swiftwave.list
```
Install SwiftWave
```bash
sudo apt update -y
sudo apt install swiftwave -y
```
Add Swiftwave Repository
```bash
sudo dnf config-manager --add-repo http://rpm.repo.swiftwave.org/swiftwave.repo
```
Install SwiftWave
```bash
sudo dnf install swiftwave -y
```
3. Initialize SwiftWave configuration.
```bash
sudo swiftwave init
```
:::info
During this step, it will ask a domain name for management node.
- If your server has a public IP, you can just use the default domain suggested by SwiftWave at that step. If you have any custom domain, you can point that domain to your server IP and use that domain name also.
- If you are just trying out in local system and doesn't have any public IP, just use `localhost` as domain name.
:::
:::tip
If you like to change the configuration or use a remotely hosted postgres database, you can run the following command and change the yaml configuration file manually.
```bash
sudo swiftwave config -e vim
```
:::
4. Start Swiftwave for Setup
```bash
sudo swiftwave start
```
5. Open the printed URL in your browser.
- Provide a new username and password for the first admin user.
- Provide a valid email address. *Don't use any fake or temporary email address.*
- Provide other infos (if required to change)
- Submit it !
- Come back to terminal.
6. Start Swiftwave Service
```bash
sudo swiftwave service enable
```
After this step, you can access Swiftwave dashboard at the same URL you opened in the previous step.
7. Generate SSL certificate for swiftwave dashboard
:::info
If you have used `localhost` as domain name for management node, skip this step.
:::
```bash
sudo swiftwave tls generate
```
Now, use `https` for dashboard URL.
8. (optional) Enable Auto Updater for SwiftWave
```bash
sudo swiftwave auto-update enable
```
9. 🎉 Congratulations! SwiftWave is now installed on your server.
10. Let's move to the next section to onboard your server to SwiftWave.
## 🖥️ Onboard Server
1. Log-in to SwiftWave Dashboard
2. Navigate to `Server Management` page and click on `Add Server` button.
3. In `Server IP` put the public / private IP of your server. If your server has no public IP, put `127.0.0.1` as IP.
4. Click on `Setup Server` button.
5. Follow the generated instructions on the dashboard.
:::info
You may be presented with the option to specify the advertiser IP address for the Docker swarm in the very last step. This occurs when a server is assigned multiple IP addresses. In such a circumstance, you should select the public IP address or private IP address generated by the cloud provider for your server.
:::
6. Wait 1 minute and refresh the list.
7. After setup is complete, click on `View Actions` and click on `Enable Ingress Proxy`, keep the default values and submit. It will take upto 5 minutes.
:::info
To verify that the ingress proxy is configured properly, open your web browser and navigate to the IP address of your server. The error code '502 Bad Gateway' should be displayed.
:::
8. 🎉 Congratulations! Your server is now onboarded to SwiftWave.
9. Now, you can start using 🚀 SwiftWave.
## 📊 Setup Resource Monitoring
SwiftWave comes with a built-in monitoring system that allows you to track the resource usage of servers and applications.
To enable monitoring, follow these steps:
1. Log-in to SwiftWave Dashboard
2. Navigate to `Server Management` page.
3. Click on `View Actions` and click on `Setup Resource Monitoring`.
4. Follow the generated instructions to complete the setup.