Fixes #17
Fix bug with loading token Updated readme Remove realms-wiki bash script (redundant) Updated install.sh Using setuptools to create cli entry point Upstart script sets gid and uid
This commit is contained in:
parent
de3b2d66c3
commit
2856dc076f
74
README.md
74
README.md
|
@ -25,7 +25,7 @@ This domain is being used temporarily as a demo so expect it to change.
|
||||||
## Requirements
|
## Requirements
|
||||||
- Python 2.7
|
- Python 2.7
|
||||||
- Git
|
- Git
|
||||||
- NodeJS (needed for bower/cleancss, distro packages shouldn't need this in future)
|
- NodeJS (needed for bower, distro packages shouldn't need this in future)
|
||||||
|
|
||||||
**Optional**
|
**Optional**
|
||||||
- Nginx (if you want proxy requests, this is recommended)
|
- Nginx (if you want proxy requests, this is recommended)
|
||||||
|
@ -34,24 +34,57 @@ This domain is being used temporarily as a demo so expect it to change.
|
||||||
Anon or single user does not require a database.
|
Anon or single user does not require a database.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
Install script only tested with Ubuntu 14.04.
|
|
||||||
Please refer to the script for package requisites if needed
|
|
||||||
|
|
||||||
|
### Ubuntu
|
||||||
|
|
||||||
|
If you are using Ubuntu 14.04, you can use install.sh.
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/scragg0x/realms-wiki
|
git clone https://github.com/scragg0x/realms-wiki
|
||||||
cd realms-wiki
|
cd realms-wiki
|
||||||
sudo bash install.sh
|
sudo bash install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
**Nginx**
|
### OSX / Windows
|
||||||
|
|
||||||
```sudo apt-get install -y nginx```
|
This app is designed to run in Linux and I recommend using Vagrant to install on OSX or Windows.
|
||||||
|
|
||||||
|
### Vagrant
|
||||||
|
|
||||||
|
Vagrantfile is included for development or running locally.
|
||||||
|
To get started with Vagrant, download and install Vagrant and Virtualbox for your platform with the links provided
|
||||||
|
|
||||||
|
https://www.vagrantup.com/downloads.html
|
||||||
|
https://www.virtualbox.org/wiki/Downloads
|
||||||
|
|
||||||
|
Then execute the following in the terminal:
|
||||||
|
|
||||||
|
git clone https://github.com/scragg0x/realms-wiki
|
||||||
|
cd realms-wiki
|
||||||
|
vagrant up
|
||||||
|
vagrant ssh
|
||||||
|
realms-wiki dev
|
||||||
|
|
||||||
|
Check ```http://127.0.0.1:5000/``` to make sure it's running.
|
||||||
|
|
||||||
|
## Config and Setup
|
||||||
|
|
||||||
|
You should be able to run this right out of the box with the default config values.
|
||||||
|
You may want to customize your app and the easiest way is the setup command.
|
||||||
|
|
||||||
|
realms-wiki setup
|
||||||
|
|
||||||
|
This will ask you questions and create a config.json file in the app root directory.
|
||||||
|
Of course you can manually edit this file as well.
|
||||||
|
Any config value set in config.json will override values set in ```realms/config/__init__.py```
|
||||||
|
|
||||||
|
## Nginx Setup
|
||||||
|
|
||||||
|
sudo apt-get install -y nginx
|
||||||
|
|
||||||
Create a file called realms.conf in /etc/nginx/conf.d
|
Create a file called realms.conf in /etc/nginx/conf.d
|
||||||
|
|
||||||
```
|
sudo nano /etc/nginx/conf.d/realms.conf
|
||||||
/etc/nginx/conf.d/realms.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
Put the following sample configuration in that file.
|
Put the following sample configuration in that file.
|
||||||
|
|
||||||
|
@ -61,6 +94,12 @@ Put the following sample configuration in that file.
|
||||||
# Your domain here
|
# Your domain here
|
||||||
server_name wiki.example.org;
|
server_name wiki.example.org;
|
||||||
|
|
||||||
|
# Settings to by-pass for static files
|
||||||
|
location ^~ /static/ {
|
||||||
|
# Example:
|
||||||
|
root /full/path/to/realms/static/;
|
||||||
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
@ -74,10 +113,12 @@ Put the following sample configuration in that file.
|
||||||
|
|
||||||
|
|
||||||
Test Nginx config
|
Test Nginx config
|
||||||
```sudo nginx -t```
|
|
||||||
|
sudo nginx -t
|
||||||
|
|
||||||
Reload Nginx
|
Reload Nginx
|
||||||
```sudo service nginx reload```
|
|
||||||
|
sudo service nginx reload
|
||||||
|
|
||||||
## Running
|
## Running
|
||||||
|
|
||||||
|
@ -93,23 +134,12 @@ Current there are different ways.
|
||||||
|
|
||||||
- Debug mode
|
- Debug mode
|
||||||
|
|
||||||
```realms-wiki runserver```
|
```realms-wiki dev```
|
||||||
|
|
||||||
Access from your browser
|
Access from your browser
|
||||||
|
|
||||||
http://localhost:5000
|
http://localhost:5000
|
||||||
|
|
||||||
## Vagrant
|
|
||||||
|
|
||||||
Vagrantfile is included for development.
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone https://github.com/scragg0x/realms-wiki
|
|
||||||
cd realms-wiki
|
|
||||||
vagrant up
|
|
||||||
vagrant ssh
|
|
||||||
realms-wiki runserver
|
|
||||||
```
|
|
||||||
|
|
||||||
## Author
|
## Author
|
||||||
|
|
||||||
|
|
20
install.sh
20
install.sh
|
@ -11,14 +11,17 @@ if [ -d "/vagrant" ]; then
|
||||||
APP_USER="vagrant"
|
APP_USER="vagrant"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ${APP_DIR}
|
if [ "${APP_USER}" == "root" ]; then
|
||||||
echo ${APP_USER}
|
echo "Installing app as root is not recommended"
|
||||||
|
echo "Username is determined by owner of application directory."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Provisioning..."
|
echo "Provisioning..."
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y software-properties-common python-software-properties
|
||||||
sudo add-apt-repository -y ppa:chris-lea/node.js
|
sudo add-apt-repository -y ppa:chris-lea/node.js
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y python build-essential git libpcre3-dev python-software-properties \
|
sudo apt-get install -y python build-essential git libpcre3-dev \
|
||||||
python-pip python-virtualenv python-dev pkg-config curl libxml2-dev libxslt1-dev zlib1g-dev \
|
python-pip python-virtualenv python-dev pkg-config curl libxml2-dev libxslt1-dev zlib1g-dev \
|
||||||
libffi-dev nodejs libyaml-dev
|
libffi-dev nodejs libyaml-dev
|
||||||
|
|
||||||
|
@ -47,18 +50,17 @@ sudo -iu ${APP_USER} bower --config.cwd=${APP_DIR} --config.directory=realms/sta
|
||||||
|
|
||||||
sudo -iu ${APP_USER} virtualenv ${APP_DIR}/.venv
|
sudo -iu ${APP_USER} virtualenv ${APP_DIR}/.venv
|
||||||
|
|
||||||
sudo -iu ${APP_USER} ${APP_DIR}/.venv/bin/pip install -r ${APP_DIR}/requirements.txt
|
sudo -iu ${APP_USER} ${APP_DIR}/.venv/bin/pip install ${APP_DIR}
|
||||||
|
|
||||||
echo "Installing start scripts"
|
echo "Installing start scripts"
|
||||||
cat << EOF > /usr/local/bin/realms-wiki
|
sudo ln -s ${APP_DIR}/.venv/bin/realms-wiki /usr/local/bin/realms-wiki
|
||||||
#!/bin/bash
|
|
||||||
${APP_DIR}/.venv/bin/python ${APP_DIR}/manage.py "\$@"
|
|
||||||
EOF
|
|
||||||
sudo chmod +x /usr/local/bin/realms-wiki
|
sudo chmod +x /usr/local/bin/realms-wiki
|
||||||
|
|
||||||
cat << EOF > /etc/init/realms-wiki.conf
|
cat << EOF > /etc/init/realms-wiki.conf
|
||||||
description "Realms Wiki"
|
description "Realms Wiki"
|
||||||
author "scragg@gmail.com"
|
author "scragg@gmail.com"
|
||||||
|
setuid ${APP_USER}
|
||||||
|
setgid ${APP_USER}
|
||||||
start on runlevel [2345]
|
start on runlevel [2345]
|
||||||
stop on runlevel [!2345]
|
stop on runlevel [!2345]
|
||||||
respawn
|
respawn
|
||||||
|
|
11
realms-wiki
11
realms-wiki
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
APP_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
APP_USER="$( stat -c '%U' ${APP_DIR} )"
|
|
||||||
CURRENT_USER=`whoami`
|
|
||||||
|
|
||||||
if [ "${CURRENT_USER}" != "${APP_USER}" ]; then
|
|
||||||
echo "Warning: Running as ${CURRENT_USER}, app dir owned by ${APP_USER}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
${APP_DIR}/.venv/bin/python ${APP_DIR}/manage.py "$@"
|
|
|
@ -15,7 +15,7 @@ def load_user(user_id):
|
||||||
@login_manager.token_loader
|
@login_manager.token_loader
|
||||||
def load_token(token):
|
def load_token(token):
|
||||||
# Load unsafe because payload is needed for sig
|
# Load unsafe because payload is needed for sig
|
||||||
sig_okay, payload = URLSafeSerializer(None).load_unsafe(token)
|
sig_okay, payload = URLSafeSerializer(None).loads_unsafe(token)
|
||||||
|
|
||||||
if not payload:
|
if not payload:
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -62,11 +62,10 @@ def edit(name):
|
||||||
if edit_cname.lower() != cname.lower():
|
if edit_cname.lower() != cname.lower():
|
||||||
wiki.rename_page(cname, edit_cname)
|
wiki.rename_page(cname, edit_cname)
|
||||||
|
|
||||||
"""
|
|
||||||
wiki.write_page(edit_cname,
|
wiki.write_page(edit_cname,
|
||||||
request.form['content'],
|
request.form['content'],
|
||||||
message=request.form['message'],
|
message=request.form['message'],
|
||||||
username=current_user.username)"""
|
username=current_user.username)
|
||||||
else:
|
else:
|
||||||
if data:
|
if data:
|
||||||
name = remove_ext(data['name'])
|
name = remove_ext(data['name'])
|
||||||
|
|
Loading…
Reference in a new issue