Add documentation in production.
It's no longer a myth! \o/
This commit is contained in:
parent
148206ce5c
commit
ff670c4679
148
HACKING.md
Normal file
148
HACKING.md
Normal file
@ -0,0 +1,148 @@
|
||||
# Personal-site | Production [Tested on server with Hyperbola GNU + Linux-libre]
|
||||
|
||||
# Python dependencies
|
||||
|
||||
- Django
|
||||
- Pillow
|
||||
- psycopg2-binary
|
||||
- pytz
|
||||
|
||||
# Production Installation
|
||||
|
||||
1. Clone **Personal-site** ()
|
||||
|
||||
git clone https://gitlab.com/heckyel-ng/personal-site /path/to/site
|
||||
|
||||
2. Run `virtualenv`.
|
||||
|
||||
cd /path/to/personalsite && virtualenv ./venv/
|
||||
|
||||
3. Activate the virtualenv.
|
||||
|
||||
source ./env/bin/activate
|
||||
|
||||
4. Install dependencies through `pip`.
|
||||
|
||||
pip install -r requirements_prod.txt
|
||||
|
||||
# Configuration Postgres
|
||||
|
||||
1. Logion as postgres
|
||||
|
||||
sudo su - postgres
|
||||
|
||||
2. Create base
|
||||
|
||||
createdb namebase
|
||||
|
||||
3. Create User (place a password for our user)
|
||||
|
||||
createuser -P username
|
||||
|
||||
4. Inside the database
|
||||
|
||||
psql -d namebase
|
||||
|
||||
5. Give permissions to the created user
|
||||
|
||||
GRANT ALL PRIVILEGES ON DATABASE namebase TO username;
|
||||
|
||||
# Conecting to Postgres
|
||||
|
||||
1. Copy `settings.py.example` to `settings.py` and modify.
|
||||
Make sure to uncomment the appropriate database section (either sqlite or
|
||||
PostgreSQL).
|
||||
|
||||
Replace sqlite configuartion to postgres, example:
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql',
|
||||
'NAME': 'namebase',
|
||||
'USER': 'username',
|
||||
'PASSWORD': 'pass',
|
||||
'HOST': '127.0.0.1',
|
||||
'PORT': '5432',
|
||||
}
|
||||
}
|
||||
|
||||
2. Migrate changes.
|
||||
|
||||
./manage.py migrate
|
||||
|
||||
3. Create superUSER
|
||||
|
||||
./manage.py createsuperuser
|
||||
|
||||
# Run with Apache server and wsgi
|
||||
|
||||
1. Install WSGI for Apache
|
||||
|
||||
sudo pacman -S mod_wsgi
|
||||
|
||||
2. To install mod_wsgi, add the following line in `httpd.conf`, example:
|
||||
|
||||
sudo nano /etc/httpd/conf/httpd.conf
|
||||
|
||||
Added line:
|
||||
|
||||
LoadModule wsgi_module modules/mod_wsgi.so
|
||||
|
||||
3. Create vhosts, for example:
|
||||
|
||||
sudo emacs /etc/httpd/conf/extra/httpd-vhosts.conf
|
||||
|
||||
and inside write the configuration, example:
|
||||
|
||||
<IfModule ssl_module>
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin example@dominio.com
|
||||
ServerName example.com
|
||||
ServerAlias example.com
|
||||
|
||||
Alias /media /path/to/site/media/
|
||||
Alias /static /path/to/site/core/static/
|
||||
<Directory /path/to/site/core/static>
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
<Directory /path/to/site/media>
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
<Directory /path/to/site/personalsite>
|
||||
<Files wsgi.py>
|
||||
Require all granted
|
||||
</Files>
|
||||
</Directory>
|
||||
|
||||
WSGIDaemonProcess personalsite python-home=/path/to/site/venv python-path=/path/to/site
|
||||
WSGIProcessGroup personalsite
|
||||
WSGIScriptAlias / /path/to/site/wsgi.py
|
||||
|
||||
</VirtualHost>
|
||||
</IfModule>
|
||||
|
||||
4. Replace `ALLOWED_HOSTS = []`
|
||||
|
||||
on setting.py to:
|
||||
|
||||
`ALLOWED_HOSTS = ["example.com", "localhost"]`
|
||||
|
||||
5. Added on setting.py:
|
||||
|
||||
STATIC_ROOT = '/path/to/site/core/static'
|
||||
|
||||
6. Create the media/ directory
|
||||
|
||||
cd /path/to/personalsite
|
||||
|
||||
mkdir media/
|
||||
|
||||
7. Change Permition to media/ at group http
|
||||
|
||||
sudo chown -R http:http media/
|
||||
|
||||
8. Restart Apache server
|
||||
|
||||
sudo service httpd restart
|
Loading…
x
Reference in New Issue
Block a user