Saturday, December 21, 2019

Test Bootable USB Disk

sudo qemu-system-x86_64 -machine accel=kvm:tcg -m 2048 -hda /dev/sdb

Di mana /dev/sdb adalah drive untuk USB

Saturday, November 30, 2019

Instalasi Portainer sebagai Dashboard Docker

Berjibaku dengan comman line di shell untuk menyeting docker container mungkin tidak terlalu masalah bagi mereka yang sudah terbiasa dan yang sudah mahir dalam dunia DevOps. Tapi untuk programmer dan pemula seperti saya, menghafal syntax buat setting environment sambil dikejar target kerja lumayan 'menyiksa', hehe. Solusinya ya portainer: dashboard yang mempermudah segala urusan yang berhubungan dengan Docker.

Install portainernya tetep pakai shell dulu yah..


$ docker volume create portainer_data 
$docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 

Setelah itu, tinggal akses aja di browser: http://localhost:9000.

Tinggal pull deh image-image yang tersedia di docker. Portainer, teman development programmer dikejar target. Hehe.

Monday, October 7, 2019

Whitenoise untuk Static Files Manager di Django

Install Whitenoise

pip install whitenoise whitenoise[brotli]

Setup pada File settings.py

Tambahkan snippet berikut:

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
     # ... 
]

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

# ... 
STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'

Jalankan perintah Collectstatic

./manage.py collectstatic

Tambahkan Path di urls.py

Terakhir, jangan lupa untuk menambahkan path staticnya:

# ...
from django.conf import settings 
from django.conf.urls.static import static
# ...
]  + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Saturday, October 5, 2019

Utilisasi Apache Server untuk Aplikasi Berbasis Web

Apache Server sudah menjadi bagian yang tidak bisa dipisahkan dari daur hidup aplikasi berbasis web. Bagi Web Developer, Apache Server adalah opsi yang selalu ada di antara daftar web server yang dapat dijadikan target deployment.

Salah satu cara cepat untuk deployment aplikasi berbasis web adalah dengan menjadikan Apache sebagai proxy ke aplikasi yang ingin di-deploy. Berikut beberapa snippet untuk dapat melakukannya.

Contoh NodeJs
  1. Install modul Apache mod_proxy, mod_proxy_http 
  2. buat Virtual host yang akan menjadi proxy ke port yang digunakan oleh nodejs
  3. Code Snippet-nya sbb:
    <virtualhost>
      ServerName sub.domain.com
      ServerAdmin webmaster@domain.com

      ProxyRequests off

      <proxy *>
        Order deny,allow
        Allow from all
      </proxy>

      <location />
        ProxyPass http://localhost:8100/
        ProxyPassReverse http://localhost:8100/
      </location>
    </virtualhost>

Contoh Python
  1. Jangan lupa untuk menginstall modul Apache mod_proxy, mod_proxy_http.
  2. Contoh di bawah ini adalah menggunakan proxy port 8000 di Apache server sementara port yang digunakan oleh aplikasi adalah 8080
    Listen 8000
    <VirtualHost *:8000>
        ServerAdmin user@domain.com

        ServerName app.domain.com
        ServerAlias app
        SSLEngine on


        # Jika menggunakan SSL certificate
        SSLCertificateFile /path/to/file.crt
        SSLCertificateKeyFile /path/to/file.id.key
        SSLCertificateChainFile /path/to/intermediate.crt
     
        ProxyPreserveHost On
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/

        LogLevel debug
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>