58 lines
No EOL
2.4 KiB
Markdown
58 lines
No EOL
2.4 KiB
Markdown
# How to install Kumify on your machine
|
||
|
||
## Prerequisites
|
||
|
||
This project was tested with Python 3.8.6 on an Ubuntu Linux host. It should theoretically work on any system capable of running a current Python3 installation.
|
||
|
||
## Getting started
|
||
|
||
### Install required Python packages
|
||
|
||
(NB: You may want to do this in a venv – the details on how and why to do this are beyond the scope of this document.)
|
||
|
||
```pip3 install -r requirements.txt```
|
||
|
||
### Basic configuration
|
||
|
||
Any configuration you have to do takes place in a localsettings.py file in the project's root directory. Copy the provided localsettings.dist.py to localsettings.py and make any modifications you may need. The options are documented within that file.
|
||
|
||
### Prepare database
|
||
|
||
To set up the database, run the following commands:
|
||
|
||
```python3 manage.py makemigrations```
|
||
```python3 manage.py migrate```
|
||
|
||
### Creating superuser account
|
||
|
||
To create an account to login to your Kumify instance, you need to use the following command in the project's root directory:
|
||
|
||
```python3 manage.py createsuperuser```
|
||
|
||
You will be asked to provide a user name, email address and password.
|
||
|
||
### Run server
|
||
|
||
For your personal purposes, if you are running the application on your personal computer and don't need it to be available from the Internet, you may run the following command:
|
||
|
||
```python3 manage.py runserver```
|
||
|
||
The application is then available at [http://localhost:8000/].
|
||
|
||
If you want to make your Kumify instance available through a network, you will need to set up something like gunicorn and nginx. How this works is beyond the scope of this document. To prepare your static files for this, make sure ```STATIC_ROOT``` is set to the correct location in localsettings.py if you don't use S3, then run:
|
||
|
||
```python3 manage.py collectstatic```
|
||
|
||
### Cron job
|
||
|
||
In order to use scheduled tasks, you need to make sure that the ```/cron/``` endpoint is called at regular intervals. Every five minutes should work fine. Use a command like ```curl http://localhost:8000/cron/```, for example.
|
||
|
||
### Telegram
|
||
|
||
To set up the Telegram integration, create a new bot by talking to the @BotFather, then run:
|
||
|
||
```python3 manage.py telegram```
|
||
|
||
If you wish to receive incoming messages through the Telegram gateway, your server must be reachable from the Internet. Configure a public IP/domain name as well as an HTTPS certificate, then run:
|
||
|
||
```python3 manage.py telegramwebhook``` |