Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 97 additions & 1 deletion docs/core-concepts/server-manual/server-installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,13 @@ The following Distros are granted to be supported out of the box:
- `Ubuntu 22.04`
- `Debian 12`

For other distributions or an easier setup, consider using [Docker](#docker) which handles all dependencies automatically.

You can see a community created page with instructions on how to install the server on other distros and versions [here](server-linux-arm).

:::

On Linux, the only way to download the server is through [SteamCMD](https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD). If you are on Ubuntu/Debian, you can easily install SteamCMD like that:
On Linux, you can download the server through [SteamCMD](https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD) or use [Docker](#docker) (recommended). If you are on Ubuntu/Debian, you can easily install SteamCMD like that:

<Tabs groupId="operating-systems"
values={[
Expand Down Expand Up @@ -213,4 +215,98 @@ steamcmd +force_install_dir ~/nanos-world-server +login anonymous "+app_update 1

Finished! You can now proceed to the next steps to configure your nanos world server.

:::

## Docker

:::tip Recommended for Linux

Using Docker is the easiest way to run a nanos world server on Linux, as it handles all dependencies automatically and works across different distributions.

:::

You can run nanos world server in a containerized environment using Docker. This method works on any system that supports Docker (Linux, Windows, macOS).

### Prerequisites

* Docker (version 20.10 or higher)
* Docker Compose (version 2.0 or higher)
* At least 100MB of free disk space

### Quick Start with Docker Compose

1. Create a `docker-compose.yml` file:

```yaml
services:
nanos-world-server:
image: olivatooo/nanos-world-server:latest
restart: unless-stopped
# Uncomment to always have the latest version
# pull_policy: always
ports:
- "7777:7777/udp"
- "7777:7777/tcp"
volumes:
- ./Packages:/app/Packages
- ./Assets:/app/Assets
# Uncomment and modify to pass parameters to the server
# command: ["--port", "7777", "--map", "MyMap"]
```

2. Start the server:

```shell
docker-compose up -d
```

3. View logs:

```shell
docker-compose logs -f
```

4. Stop the server:

```shell
docker-compose down
```

### Using Docker CLI

Alternatively, you can run the server directly with Docker:

```shell
docker run olivatooo/nanos-world-server
```

### Configuration

You can pass server parameters by modifying the `command` section in `docker-compose.yml`:

```yaml
command: ["--max-players", "32", "--announce"]
```

### Persistent Data

The Docker configuration mounts a volume to `/app` inside the container. This allows you to:
- Persist server configuration files
- Add custom packages and assets
- Access server logs
- Maintain saved data between container restarts

### Updating the Server

To update to the latest version:

```shell
docker-compose pull
docker-compose up -d
```

:::info Community Resource

The Docker setup is maintained by the community. For more details, visit the [nanos-world-server Docker repository](https://github.com/olivatooo/nanos-world-server).

:::