···3232**Server Requirements**
3333* Public IPv4 address
3434* Public DNS name
3535-* Public internet access permitted on port 80/tcp and 443/tcp
3535+* Public inbound internet access permitted on port 80/tcp and 443/tcp
36363737**Server Recommendations**
3838+3839| | |
3940| ---------------- | ---------------- |
4041| Operating System | Ubuntu 22.04 LTS |
4142| Memory (RAM) | 2+ GB |
4243| CPU Cores | 2+ |
4344| Storage | 40+ GB SSD |
4545+| Architectures | amd64, arm64 |
44464545-4647### Install your server
47484849Install your Ubuntu 22.04 server, and then ensure that you can ssh to it.
49505050-**NOTE:** It is a good security practice to restrict inbound ssh access (port 22/tcp) to your own computer's public IP address. You can check your current public IP address using [ifconfig.me](https://ifconfig.me/).
5151+**Note:** It is a good security practice to restrict inbound ssh access (port 22/tcp) to your own computer's public IP address. You can check your current public IP address using [ifconfig.me](https://ifconfig.me/).
51525253### Open your firewall
5354···57585859#### Open ports on your cloud provider's firewall
59606060-In your cloud provider's console, the following ports should be open to access from the public internet.
6161+In your cloud provider's console, the following ports should be open to inbound access from the public internet.
61626263* 80/tcp (Used only for TLS certification verification)
6364* 443/tcp (Used for all application requests)
64656565-No need to set up TLS or redirect requests from port 80 to 443, we've included Caddy in the distribution and it should handle that for you.
6666+**Note:** there is no need to set up TLS or redirect requests from port 80 to 443 because the Caddy web server, included in the Docker compose file, will handle this for you.
66676768#### Open ports on your Linux firewall
6869···7374$ sudo ufw allow 443/tcp
7475```
75767777+### Configure DNS for your domain
7878+7979+From your DNS provider's control panel, set up a domain with records pointing to your server.
8080+8181+| Name | Type | Value | TTL |
8282+| ----------------- | ---- | ------------- | ---- |
8383+| `example.com` | `A` | `12.34.56.78` | 600 |
8484+| `*.example.com` | `A` | `12.34.56.78` | 600 |
8585+8686+**Note:**
8787+* Replace `example.com` with your domain name.
8888+* Replace `12.34.56.78` with your server's IP address.
8989+* Some providers may use the `@` symbol to represent the root of your domain.
9090+* The wildcard record is required when allowing users to create new accounts on your PDS.
9191+7692### Install Docker
77937878-To install Docker CE (Community Edition) on Ubuntu 22.04, use the the following instructions. For other operating systems you may reference the [official Docker install guides](https://docs.docker.com/engine/install/).
9494+On your server, install Docker CE (Community Edition), using the the following instructions. For other operating systems you may reference the [official Docker install guides](https://docs.docker.com/engine/install/).
79958080-**NOTE:** All of the following commands should be run on your server via ssh.
9696+**Note:** All of the following commands should be run on your server via ssh.
81978298#### Uninstall old versions
8399···133149```
134150135151### Create the Caddyfile
152152+153153+Be sure to replace `example.com` with your own domain.
136154137155```bash
138156cat <<CADDYFILE | sudo tee /data/caddy/etc/caddy/Caddyfile
···215233216234```bash
217235curl https://example.com/xrpc/_health
218218-{"version":"v1.2.3"}
236236+{"version":"0.2.2-beta.2"}
219237```
220238221239### Connecting to your server