Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Linux server installation guide for open.mp #1096

Merged
merged 1 commit into from
Jan 24, 2025
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
191 changes: 191 additions & 0 deletions docs/server/LinuxServerInstallation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
**This guide contains a comprehensive guide on installing an open.mp server on Ubuntu or another Debian based Linux.
Whether you're a beginner or just looking to refresh your knowledge, this guide may have something useful for you!**

:::warning

If you are using the SA:MP server and didn't convert to open.mp yet, **[please stop here and read this guide first.](https://www.open.mp/docs/server/Installation)**

:::


:::note

If you are using the FCNPC plugin, please stop for now because this plugin does not work for open.mp currently.

:::

## Prerequisites
Before starting, you should have:
- A machine running Ubuntu (20.04 or later recommended) or another Debian based Linux;
- WinSCP or Filezilla for file transfers;
- PuTTY or your hosting SSH solution;

:::note

If you install WinSCP, the installer will prompt you to install PuTTY!
It's up to you if you want to install it or not, but you can always download it later!

:::

## Phase 1: Preparing the Environment

1. Connecting via SSH:
- Use PuTTY or your hosting SSH solution to connect to your instance.

:::note

Seek online guides or your hosting provider's documentation if you're unsure how to connect to your Linux Instance.

:::

2. Updating your Linux Instance:
- Before proceeding, let's ensure your system is up to date by running:

```
sudo apt update
```
```
sudo apt upgrade
```

3. Creating a secure service account:
- For security reasons, we should create a dedicated service account without a home directory:

```
sudo useradd -M svc-omp-server
```

4. Locking the service sccount:
- Let's prevent the service account from being used for login:

```
sudo usermod -L svc-omp-server
```

5. Creating a directory for the server files:
- We will use the /opt directory, this is the standard location for third-party applications:

```
sudo mkdir /opt/omp-server
```

6. Setting permissions for the directory:
- Changing the group of the directory to match the service account:

```
sudo chgrp svc-omp-server /opt/omp-server
```

- Setting the g+s flag so new files inherit the correct group and remove access for others:

```
sudo chmod g+s /opt/omp-server
```
```
sudo chmod o-rwx /opt/omp-server
```

<hr />

## Phase 2: Installing open.mp Server Files

7. Let's navigate to the server directory:
- We need to move to the /opt/omp-server directory where the server will be stored:

```
cd /opt/omp-server
```

8. Downloading the open.mp server files:
- Download the latest release of the open.mp server:

```
sudo -u svc-omp-server wget https://github.com/openmultiplayer/open.mp/releases/download/vX.X.X.XXXX/open.mp-linux-x86.tar.gz
```

:::warning

**You should ALWAYS check for the latest release at the open.mp GitHub Releases page!**
[https://github.com/openmultiplayer/open.mp/releases](https://github.com/openmultiplayer/open.mp/releases)

:::

9. Extracting the server files:
- Once downloaded, extract the files:

```
sudo -u svc-omp-server tar -xzf open.mp-linux-x86.tar.gz
```

<hr />

## Phase 3: Configuring and Starting the Server

10. Installing the required x86 libraries:
- Since the server runs as a 32-bit application, you need to enable 32-bit architecture support:

```
sudo dpkg --add-architecture i386
```
```
sudo apt update
```
```
sudo apt install libc6:i386
```

11. Making the server executable:
- Change the permissions so the server can be executed (only required once!):

```
cd /opt/omp-server/Server/
```

```
sudo chmod +x omp-server
```

12. Starting the server:
- Use the following command to start the server in the background:

```
nohup ./omp-server &
```

- The terminal will output a process ID (PID). Write this number down for future reference.

<hr />

## Phase 4: Managing the Server

13. Stopping the server:
- To stop the server, use the PID from step 12 and run:

```
sudo kill <PID>
```

14. Finding the Process ID (if forgotten):

- If you forget the process ID, run:

```
top
```

- Look for the omp-server process in the list, note the PID, press 'Q' to quit, and then kill the process as shown in step 13.

<hr />

## Phase 5: Uploading Your Gamemode and Files

15. Upload your custom gamemodes and scripts:
- Use WinSCP or Filezilla to transfer your gamemodes and scripts to the /opt/omp-server directory.
Important: Make sure to use .so files for Linux plugins, as .dll files are only supported on Windows.


## Help

If you're still experiencing issues setting up the server, join the official open.mp Discord server: [https://discord.gg/samp](https://discord.gg/samp)

Post your question in the [#openmp-support](https://discord.com/channels/231799104731217931/966398440051445790) channel and mention this guide so we can improve it.
Loading