aboutsummaryrefslogtreecommitdiffstats
path: root/docs/ru/server_ru.md
blob: 25b45abf0691dfaf2483fe58ab561713ec2e11c6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# `atuin server`

Autin позволяет запустить свой собственный сервер синхронизации, если вы 
не хотите использовать мой :)

Здесь есть только одна субкоманда, `atuin server start`, которая запустит 
Autin http-сервер синхронизации

```
USAGE:
    atuin server start [OPTIONS]

FLAGS:
        --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -h, --host <host>
    -p, --port <port>
```

## config

Серверная конфигурация лежит отдельно от файла пользовательсокй, даже если
это один и тот же бинарный файл. Серверная конфигурация лежит в `~/.config/atuin/server.toml`.

Этот файл выглядит как-то так:

```toml
host = "0.0.0.0"
port = 8888
open_registration = true
db_uri="postgres://user:password@hostname/database"
```

Конфигурация так же может находииться в переменных окружения.

```sh
ATUIN_HOST="0.0.0.0"
ATUIN_PORT=8888
ATUIN_OPEN_REGISTRATION=true
ATUIN_DB_URI="postgres://user:password@hostname/database"
```

### host

Адрес хоста, который будет прослушиваться сервером Autin 

По умолчанию это `127.0.0.1`.

### post

POST, который будет прослушиваться сервером Autin.

По умолчанию это `8888`.

### open_registration

Если `true`, autin будет разрешать регистрацию новых пользователей.
Установите флаг `false`, если после создания вашего аккаута вы не хотите, чтобы другие 
могли пользоваться вашим сервером.

По умолчанию `false`.

### db_uri

Действующий URI postgres, где будет сохранён аккаунт пользователя и история.

## Docker

Поддерживается образ Docker чтобы сделать проще развертывание сервера в контейнере.

```sh
docker run -d -v "$USER/.config/atuin:/config" ghcr.io/ellie/atuin:latest server start
```

## Docker Compose

Использование вашего собственного docker-образа с хостингом вашего собственного Autin может быть реализовано через 
файл docker-compose. 

Создайте файл `.env` рядом с `docker-compode.yml` с содержанием наподобие этому:

```
ATUIN_DB_USERNAME=atuin
# Choose your own secure password
ATUIN_DB_PASSWORD=really-insecure
```

Создайте `docker-compose.yml`:

```yaml
version: '3.5'
services:
  atuin:
    restart: always
    image: ghcr.io/ellie/atuin:main
    command: server start
    volumes:
      - "./config:/config"
    links:
      - postgresql:db
    ports:
      - 8888:8888
    environment:
      ATUIN_HOST: "0.0.0.0"
      ATUIN_OPEN_REGISTRATION: "true"
      ATUIN_DB_URI: postgres://$ATUIN_DB_USERNAME:$ATUIN_DB_PASSWORD@db/atuin
  postgresql:
    image: postgres:14
    restart: unless-stopped
    volumes: # Don't remove permanent storage for index database files!
      - "./database:/var/lib/postgresql/data/"
    environment:
      POSTGRES_USER: $ATUIN_DB_USERNAME
      POSTGRES_PASSWORD: $ATUIN_DB_PASSWORD
      POSTGRES_DB: atuin
```

Запустите службы с помощью `docker-compose`:

```sh
docker-compose up -d
```

### Использование systemd для управления сервером Autin

`systemd` юнит чтобы управлять службами, контролируемыми `docker-compose`:

```
[Unit]
Description=Docker Compose Atuin Service
Requires=docker.service
After=docker.service

[Service]
# Where the docker-compose file is located
WorkingDirectory=/srv/atuin-server 
ExecStart=/usr/bin/docker-compose up
ExecStop=/usr/bin/docker-compose down
TimeoutStartSec=0
Restart=on-failure
StartLimitBurst=3

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

Включите и запустите службу командой:

```sh
systemctl enable --now atuin
```

Проверьте, работает ли:

```sh
systemctl status atuin
```