Name Last Update
developers Loading commit data...
etc Loading commit data...
opensipkd Loading commit data...
tests Loading commit data...
wsgi Loading commit data...
.gitignore Loading commit data...
CHANGES.txt Loading commit data...
LICENSE Loading commit data...
MANIFEST.in Loading commit data...
README.md Loading commit data...
README.txt Loading commit data...
install-nginx.rst Loading commit data...
install.txt Loading commit data...
log.txt Loading commit data...
python-alternative.rst Loading commit data...
requirements.txt Loading commit data...
requires.txt Loading commit data...
setup.cfg Loading commit data...
setup.py Loading commit data...

Basis Aplikasi openSIPKD Minimalis

Ini adalah basis dari seluruh aplikasi openSIPKD.

Pemasangan

Pasang paket Debian yang dibutuhkan::

$ sudo apt install libxml2-dev libxslt1-dev libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev

Buat Python Virtual Environment:

Biasanya pada home directory::

$ python3 -m venv ~/env
$ ~/env/bin/pip install --upgrade pip setuptools
$ ~/env/bin/pip install wheel

Instalasi

Production:

$ ~/env/bin/pip install git+https://git.opensipkd.com/aa.gusti/base.git@latest
$ cp ~/env/etc/live_opensipkd.tpl  ~/env/etc/live_opensipkd.ini 

Install Development::

$ source ~/env/bin/activate 
$ mkdir apps
$ cd apps
$ git clone https://git.opensipkd.com/aa.gusti/base.git@latest
$ env/bin/pip install -e base[dev]
$ cp ~/env/etc/test_opensipkd.tpl  ~/env/etc/test_opensipkd.ini 

Sesuaikan konfigurasi

Konfigurasi tergantung pada jenis instalasi test_opensipkd.ini atau live_opensipkd.inipada baris berikut ini::

Database Koneksi:

[app:main]
sqlalchemy.url = postgresql://user:password@localhost:5432/db
session.url = postgresql://user:password@localhost:5432/db


[alembic_ziggurat]
sqlalchemy.url = postgresql://user:password@localhost:5432/db
script_location = ziggurat_foundation:migration

[alembic_base]
sqlalchemy.url = postgresql://user:password@localhost:5432/db
script_location = opensipkd.base:alembic

Login/Register:

[app:main]
captcha_files=
# static folder untuk image captcha
reg_captcha = 1
# saat registrasi diwajibkan menggunakan captcha
reg_idcard = 1
# saat registrasi diwajibkan mengisi kode/nik pengguna
# akan menampilkan pula upload file id card
reg_verify = 1
# Registrasi memrlukan verifikasi terlebih dahulu sebelum dapat login
reg_form =
# diisi route registrasi default "register" jika dikosongkan
login_tpl =
# diisi nama template login apabila akan menggunakan template yang berbeda

Handling Log File:

Logging dapat dilakukan console, file atau tabel

>> Module yang akan di logging
[loggers]
keys = root, opensipkd, sqlalchemy

>> output handler gunakan sesuai kebutuhan tidak perlu semuanya
[handlers]
keys = console, file, table


>> output handler gunakan INFO pada level kalau sedang testing
[logger_opensipkd]
level = WARN
handlers = file, table
qualname = opensipkd

[handler_table]
class = opensipkd.base.handlers.SQLAlchemyHandler
args = ()
level = NOTSET #Sebaiknya hanya gunakan NOTSET atau WARN 
formatter = generic

[handler_file]
class = FileHandler
args = ('/full/path/file.log', 'a')
level = NOTSET #Sebaiknya hanya gunakan NOTSET atau WARN
formatter = generic

[alembic]
sqlalchemy.url = postgresql://user:password@localhost:5432/db
script_location = alembic
```

Google Integrated dan Custom Register Form

Aplikasi sudah bisa terintegrsi dengan google oauth2

Konfigurasi merupakan bagian dari "main"

    [app:main]
    allow_register = True
    google-signin-client-id = id oauth2 client dari google

Buat tabelnya::

Perintah untuk membuat tabel

$ ~/env/bin/initialize_opensipkd_db [file_config]

Contoh:

$ ~/env/bin/initialize_opensipkd_db ~/env/etc/test_opensipkd.ini

##Jalankan::

$ ~/env/bin/pserve --reload test.ini

Penggunaan Proxy

Apache::

Tambahkan line berikut ini didalam <VirtualHost>::

        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / http://server:port/
        ProxyPassReverse / http://server:port/
        <Proxy *>
            allow from all
        </Proxy>

Contoh::

    <VirtualHost ip:80>
        SuexecUserGroup "#uid" "#gid"
        ServerName antrian.opensipkd.com
        ServerAlias www.antrian.opensipkd.com

        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / http://localhost:6552/
        ProxyPassReverse / http://localhost:6552/
        <Proxy *>
            allow from all
        </Proxy>
    </VirtualHost>

Virtual Directory

Setting Ini File

Ubah [app:main] jadi [app:opensipkd]

    ;[app:main]
    [app:opensipkd_base]
    trusted_proxy_headers = "forwarded x-forwarded-for x-forwarded-host x-forwarded-proto x-forwarded-port"
    url_prefix='/virtualdir'  ; nama cirtual direktory 

Tambahkan blok berikut ini dibawah ini file

    [filter:proxy-prefix]
    use = egg:PasteDeploy#prefix
    prefix = /virtualdir ; nama virtual directory

    [pipeline:main]
    pipeline =
        proxy-prefix
        opensipkd_base

Nginx::

    location /virtualdir{
        return 302 /virtualdir/;
    }
    location /virtualdir/ {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Port $server_port;

        proxy_pass http://127.0.0.1:6543/;
    }