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
|
@ -24,7 +24,6 @@ use virtualenv and pip to handle these. But if you insist on (Arch GNU/Linux)
|
|||||||
packages, you will probably want the following:
|
packages, you will probably want the following:
|
||||||
|
|
||||||
- django
|
- django
|
||||||
- python-psycopg2
|
|
||||||
- python-markdown
|
- python-markdown
|
||||||
- python-memcached
|
- python-memcached
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user