microblog/docs/install.md

108 lines
2.0 KiB
Markdown
Raw Normal View History

2022-07-05 19:35:39 +00:00
# Installing
[TOC]
## Docker edition
2022-07-28 18:38:54 +00:00
Assuming Docker and [Docker Compose](https://docs.docker.com/compose/install/) are already installed.
For now, there's no image published on Docker Hub.
Clone the repository.
```bash
git clone https://git.sr.ht/~tsileo/microblog.pub your-domain.tld
```
Build the Docker image.
```bash
make build
```
Run the configuration wizard.
```bash
make config
```
Build static assets.
```bash
make update
```
Start the app with Docker Compose, it will listen on port 8000 by default.
```bash
docker compose up -d
```
Setup a reverse proxy (see the [Reverse Proxy section](/installing.html#reverse-proxy)).
2022-07-05 19:35:39 +00:00
2022-07-05 07:15:45 +00:00
## Python developer edition
2022-07-05 19:35:39 +00:00
Assuming you have a working **Python 3.10+** environment.
2022-07-05 07:15:45 +00:00
Setup [Poetry](https://python-poetry.org/docs/master/#installing-with-the-official-installer).
```bash
curl -sSL https://install.python-poetry.org | python3 -
```
Clone the repository.
```bash
git clone https://git.sr.ht/~tsileo/microblog.pub testing.microblog.pub
```
Install deps.
```bash
poetry install
```
Setup config.
```bash
poetry run inv configuration-wizard
```
Grab your virtualenv path.
```bash
poetry env info
```
Run the two processes with supervisord.
```bash
VENV_DIR=/home/ubuntu/.cache/pypoetry/virtualenvs/microblogpub-chx-y1oE-py3.10 poetry run supervisord -c misc/supervisord.conf -n
```
2022-07-28 18:38:54 +00:00
Setup a reverse proxy (see the next section).
## Reverse proxy
2022-07-05 07:15:45 +00:00
You will also want to setup a reverse proxy like Nginx, see [uvicorn documentation](https://www.uvicorn.org/deployment/#running-behind-nginx):
```nginx
server {
client_max_body_size 4G;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://localhost:8000;
}
# [...]
}
```