merged from gramsrv upstream
This commit is contained in:
parent
79c64ee916
commit
21a0856587
651 changed files with 54774 additions and 4590 deletions
83
docs/local-setup.md
Normal file
83
docs/local-setup.md
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
# Local setup
|
||||
|
||||
This guide shows the shortest safe path for running gramsrv on a development
|
||||
machine or a small test server.
|
||||
|
||||
## 1. Prepare local configuration
|
||||
|
||||
The repository intentionally tracks only `.env.example`. Your real `.env` is
|
||||
ignored by Git and must not be committed.
|
||||
|
||||
Linux / macOS:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
${EDITOR:-nano} .env
|
||||
```
|
||||
|
||||
Windows PowerShell:
|
||||
|
||||
```powershell
|
||||
Copy-Item .env.example .env
|
||||
notepad .env
|
||||
```
|
||||
|
||||
If you prefer a different config filename, set `TELESRV_CONFIG` as a process
|
||||
environment variable before starting the server.
|
||||
|
||||
## 2. Set the network values
|
||||
|
||||
Review at least these values in `.env`:
|
||||
|
||||
- `TELESRV_LISTEN` is the MTProto bind address. Use `0.0.0.0:2398` when
|
||||
external clients must connect to this host, or `127.0.0.1:2398` for
|
||||
same-machine testing only.
|
||||
- `TELESRV_ADVERTISE_IP` must be a client-reachable IPv4 or IPv6 address, not a
|
||||
DNS name. Use `127.0.0.1` only when the patched client runs on the same
|
||||
machine. Use a LAN or public IP for phones, other computers, or remote tests.
|
||||
- `TELESRV_PUBLIC_BASE_URL` and `TELESRV_PUBLIC_WEB_BASE_URL` are HTTP(S) URLs
|
||||
used in generated public links. Put hostnames here, not in
|
||||
`TELESRV_ADVERTISE_IP`.
|
||||
- `TELESRV_DEV_AUTH_CODE=12345` is convenient for local development but must not
|
||||
be exposed as a production login code.
|
||||
|
||||
## 3. Start Postgres and Redis
|
||||
|
||||
The development compose file exposes Postgres on `127.0.0.1:5432` and Redis on
|
||||
`127.0.0.1:6399`, matching the defaults in `.env.example`.
|
||||
|
||||
```bash
|
||||
docker compose -f deploy/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
If you use external Postgres or Redis, update `TELESRV_POSTGRES_DSN` and
|
||||
`TELESRV_REDIS_ADDR` in `.env`.
|
||||
|
||||
## 4. Build and run the server
|
||||
|
||||
Linux / macOS:
|
||||
|
||||
```bash
|
||||
go build -o bin/gramsrv ./cmd/telesrv
|
||||
./bin/gramsrv
|
||||
```
|
||||
|
||||
Windows PowerShell:
|
||||
|
||||
```powershell
|
||||
go build -o bin/gramsrv.exe ./cmd/telesrv
|
||||
.\bin\gramsrv.exe
|
||||
```
|
||||
|
||||
## 5. First-start checklist
|
||||
|
||||
After startup, confirm:
|
||||
|
||||
- migrations completed successfully;
|
||||
- `data/server_rsa.pem` was created if it did not already exist;
|
||||
- MTProto is listening on `TELESRV_LISTEN`;
|
||||
- Postgres and Redis connections are healthy;
|
||||
- patched clients use the matching DC address, port, and server RSA key.
|
||||
|
||||
For the complete configuration reference, see
|
||||
[`docs/configuration.en.md`](configuration.en.md).
|
||||
Loading…
Add table
Add a link
Reference in a new issue