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

Recommend setting WorkingDirectory #1064

Merged
merged 11 commits into from
Jun 1, 2024
15 changes: 9 additions & 6 deletions site/docs/es/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,20 @@ systemd is a powerful service manager which is pre-installed on many Linux distr

:::

2. Usted debe tener la ruta absoluta a su archivo de entrada, también.
2. Deberías tener la ruta absoluta al directorio de tu bot.

3. Tu comando de inicio debería ser como el siguiente:

```sh
<ruta_de_ejecución> <opciones> <ruta_archivo_entrada>

# Ruta al directorio del bot: /home/user/bot1/

# Ejemplo Deno:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# /home/user/.deno/bin/deno --allow-all run mod.ts

# Ejemplo Node.js:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
# /home/user/.nvm/versions/node/v16.9.1/bin/node index.js
```

#### Creación del servicio
Expand All @@ -181,20 +183,21 @@ systemd is a powerful service manager which is pre-installed on many Linux distr
After=network.target

[Service]
Environment=BOT_TOKEN=<token>
WorkingDirectory=<ruta-directorio-bot>
ExecStart=<comando-de-inicio>
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

Sustituye `<token>` por el token de tu bot y `<comando-de-inicio>` por el comando que recibiste [arriba](#obtener-el-comando-de-inicio).
Sustituye `<ruta-directorio-bot>` por la ruta absoluta al directorio de tu bot y `<comando-de-inicio>` por el comando que recibiste [arriba](#obtener-el-comando-de-inicio).

He aquí una breve explicación de la configuración del servicio:

- `After=network.target` --- indica que la aplicación debe lanzarse después de cargar el módulo de Internet.
- `Environment=BOT_TOKEN=<token>` --- establece la variable de entorno `BOT_TOKEN`. Añade otras entradas `Environment` si necesitas múltiples variables de entorno.
- `WorkingDirectory=<ruta-directorio-bot>` --- establece el directorio de trabajo actual del proceso.
Esto le permite utilizar activos relativos, como el archivo `.env`, que contiene todas las variables de entorno necesarias.
- `ExecStart=<comando-de-inicio>` --- establece el comando de inicio.
- `Restart=on-failure` --- indica que la aplicación debe reiniciarse después de un fallo.
- `WantedBy=multi-user.target` --- define el estado del sistema en el que debe iniciarse el servicio.
Expand Down
18 changes: 10 additions & 8 deletions site/docs/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,20 @@ systemd is a powerful service manager which is pre-installed on many Linux distr

:::

2. You should have the absolute path to your entry file, too.
2. You should have the absolute path to your bot's directory.

3. Your start command should look like the following:

```sh
<runtime_path> <options> <entry_file_path>
<runtime_path> <options> <entry_file_relative_path>

# Path to the bot directory: /home/user/bot1/

# Deno example:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# /home/user/.deno/bin/deno --allow-all run mod.ts

# Node.js example:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
# /home/user/.nvm/versions/node/v16.9.1/bin/node index.js
```

#### Creating the Service
Expand All @@ -181,21 +183,21 @@ systemd is a powerful service manager which is pre-installed on many Linux distr
After=network.target

[Service]
Environment=BOT_TOKEN=<token>
WorkingDirectory=<bot-directory-path>
ExecStart=<start-command>
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

Replace `<token>` with your bot's token and `<start-command>` with the command you received [above](#getting-the-start-command).
Replace `<bot-directory-path>` with the absolute path to your bot's directory and `<start-command>` with the command you received [above](#getting-the-start-command).

Here is a brief explanation of the service configuration:

- `After=network.target` --- indicates that the application should be launched after the Internet module is loaded.
- `Environment=BOT_TOKEN=<token>` --- sets the environment variable `BOT_TOKEN`.
Add other `Environment` entries if you need multiple environment variables.
- `WorkingDirectory=<bot-directory-path>` --- sets the current working directory of the process.
This allows you to use relative assets, such as the `.env` file, which contains all the necessary environment variables.
- `ExecStart=<start-command>` --- sets the startup command.
- `Restart=on-failure` --- indicates that the application should restart after a crash.
- `WantedBy=multi-user.target` --- defines the system state in which the service should be launched.
Expand Down
18 changes: 10 additions & 8 deletions site/docs/id/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,20 @@ systemd merupakan pengelola service yang terinstal secara bawaan di mayoritas di

:::

2. Peroleh juga path absolut ke file entrinya.
2. Peroleh path absolut direktori bot.

3. Perintah permulaan kamu semestinya serupa dengan ini:

```sh
<path_runtime> <opsi> <path_file_entri>
<path_runtime> <opsi> <path_relatif_file_utama>

# Path direktori bot: /home/user/bot1/

# Contoh untuk Deno:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# /home/user/.deno/bin/deno --allow-all run mod.ts

# Contoh untuk Node.js:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
# /home/user/.nvm/versions/node/v16.9.1/bin/node index.js
```

#### Membuat Service
Expand All @@ -181,21 +183,21 @@ systemd merupakan pengelola service yang terinstal secara bawaan di mayoritas di
After=network.target

[Service]
Environment=BOT_TOKEN=<token>
WorkingDirectory=<path-direktori-bot>
ExecStart=<perintah-mulai>
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

Ganti `<token>` dengan token bot kamu dan `<perintah-mulai>` dengan perintah yang kamu terima [di atas tadi](#menyiapkan-perintah-mulai).
Ganti `<path-direktori-bot>` dengan path absolut direktori bot kamu dan `<perintah-mulai>` dengan perintah yang kamu terima [di atas tadi](#menyiapkan-perintah-mulai).

Berikut uraian singkat konfigurasi service di atas:

- `After=network.target` --- mengindikasikan bahwa aplikasi harus dijalankan hanya setelah modul internet telah dimuat.
- `Environment=BOT_TOKEN=<token>` --- menambahkan environment variable `BOT_TOKEN`.
Tambahkan entri `Environment` lainnya jika kamu membutuhkan environment variable tambahan.
- `WorkingDirectory=<path-direktori-bot>` --- menyetel path pemrosesan ke direktori yang saat ini dikerjakan.
Dengan begitu, kamu jadi bisa menggunakan file aset relatif dari path tersebut, contohnya file `.env`, yang mana berisi semua _environment variable_ yang dibutuhkan.
- `ExecStart=<perintah-mulai>` --- menyetel perintah permulaan (startup command).
- `Restart=on-failure` --- mengindikasikan bahwa aplikasi harus dimulai ulang ketika terjadi kesalahan atau crash.
- `WantedBy=multi-user.target` --- menentukan pada tahap sistem (system state) apa service mesti dijalankan.
Expand Down
18 changes: 10 additions & 8 deletions site/docs/uk/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,20 @@ systemd --- це потужний менеджер служб, який пере

:::

2. Ви також повинні мати абсолютний шлях до файлу, який є точкою входу вашого застосунку.
2. Ви також повинні мати абсолютний шлях до каталогу вашого бота.

3. Ваша команда запуску повинна виглядати наступним чином:

```sh
<шлях-до-середовища-виконання> <опції> <шлях-до-вхідного-файлу>
<шлях-до-середовища-виконання> <опції> <відносний-шлях-до-вхідного-файлу>

# Шлях до каталогу бота: /home/user/bot1/

# Приклад для Deno:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# /home/user/.deno/bin/deno --allow-all run mod.ts

# Приклад для Node.js:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
# /home/user/.nvm/versions/node/v16.9.1/bin/node index.js
```

#### Створення служби
Expand All @@ -181,21 +183,21 @@ systemd --- це потужний менеджер служб, який пере
After=network.target

[Service]
Environment=BOT_TOKEN=<токен-бота>
WorkingDirectory=<шлях-до-каталогу-бота>
ExecStart=<команда-запуску>
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

Замініть `<токен-бота>` на токен вашого бота, а `<команда-запуску>` на команду, яку ви отримали [вище](#отримання-команди-запуску).
Замініть `<шлях-до-каталогу-бота>` на абсолютний шлях до каталогу вашого бота, а `<команда-запуску>` на команду, яку ви отримали [вище](#отримання-команди-запуску).

Ось коротке пояснення конфігурації сервісу:

- `After=network.target` --- вказує на те, що додаток повинен запускатися після завантаження інтернет-модуля.
- `Environment=BOT_TOKEN=<токен-бота>` --- встановлює змінну оточення `BOT_TOKEN`.
Додайте інші записи `Environment`, якщо вам потрібно декілька змінних оточення.
- `WorkingDirectory=<шлях-до-каталогу-бота>` --- встановлює поточний робочий каталог процесу.
Це дозволяє використовувати відносні ресурси, як-от файл `.env`, який містить всі необхідні змінні оточення.
- `ExecStart=<команда-запуску>` --- встановлює команду запуску.
- `Restart=on-failure` --- вказує на те, що програма повинна перезапускатися у разі збою.
- `WantedBy=multi-user.target` --- визначає стан системи, в якому повинен запускатися сервіс.
Expand Down
18 changes: 10 additions & 8 deletions site/docs/zh/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,20 @@ systemd 是一个功能强大的服务管理器,已预装在许多 Linux 发

:::

2. 你还应该有入口文件(即通过哪一个文件启动你的 bot)的绝对路径
2. 你还应该有你的 bot 的目录的绝对路径

3. 你的启动命令应该看起来像下面这样:

```sh
<runtime_path> <options> <entry_file_path>
<runtime_path> <options> <entry_file_relative_path>

# bot 目录的路径:/home/user/bot1/

# Deno 示例:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# /home/user/.deno/bin/deno --allow-all run mod.ts

# Node.js 示例:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
# /home/user/.nvm/versions/node/v16.9.1/bin/node index.js
```

#### 创建服务
Expand All @@ -181,21 +183,21 @@ systemd 是一个功能强大的服务管理器,已预装在许多 Linux 发
After=network.target

[Service]
Environment=BOT_TOKEN=<token>
WorkingDirectory=<bot-directory-path>
ExecStart=<start-command>
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

将 `<token>` 替换为你的 bot token,将 `<start-command>` 替换为 [上文](#获取启动命令) 获取到的命令。
将 `<bot-directory-path>` 替换为你的 bot 目录的绝对路径,将 `<start-command>` 替换为 [上文](#获取启动命令) 获取到的命令。

以下是服务配置的简要说明:

- `After=network.target` --- 表示应用程序应在网络模块加载后启动。
- `Environment=BOT_TOKEN=<token>` --- 设置环境变量 `BOT_TOKEN`
如果需要多个环境变量,请添加其他 `Environment` 条目
- `WorkingDirectory=<bot-directory-path>` --- 设置进程的工作目录
这允许你使用相关资产,例如包含了所有必要的环境变量的 `.env` 文件
- `ExecStart=<start-command>` --- 设置启动命令。
- `Restart=on-failure` --- 表示应用程序应在崩溃后重新启动。
- `WantedBy=multi-user.target` --- 定义了服务启动时的系统状态。
Expand Down
Loading