Archive for August 2018

Cara Membuat Blog Github dengan Hexo di Ubuntu 16.04

Pastikan paket sistem ubuntu kita sudah diperbarui.
sudo apt-get update && sudo apt-get upgrade

Install Git dengan perintah :
sudo apt-get install git
Install Nodejs dan npm
Cara install Nodejs dan npm bisa baca catatan disini : Install Nodejs dan Npm dengan PPA

Install Hexo Blog
Yang pertama, install hexo-cli dengan npm, hexo-cli adalah bagian yang paling penting dalam perintah inti Hexo.
sudo npm install hexo-cli -g

Yang kedua, hexo-server, hexo-server adalah server built-in yang dapat digunakan untuk melihat dan menguji blog kita sebelum digunakan.
sudo npm install hexo-server -g
Ada banyak paket yang tersedia, ini hanyalah hal penting yang kita perlukan untuk membuat blog Hexo kita aktif dan berjalan. kita juga dapat menelusuri lebih banyak paket yang tersedia sebagai bagian dari kerangka Hexo pada pencarian npm.

Selanjutnya, kita perlu mengatur file-file dasar untuk blog baru kita. Untungnya, Hexo melakukan semua pekerjaan dasar dengan satu perintah. Yang perlu kita lakukan adalah menyediakan folder tempat kita ingin menyimpan file konfigurasi blog hexo kita, blog folder menurut saya di Home direktori Ubuntu kita aja.
hexo init hexo-blog

Masuk ke directori hexo-blog, sebagai folder hexo kita :
cd hexo-blog
npm install

cek versi hexo
hexo -v
ls -l


Konfigurasi hexo blog
nano _config.yml

Empat baris pertama adalah nama blog kita, subtitle yang sesuai, deskripsi, dan nama penulis. Kita dapat memilih apa pun yang kita suka untuk opsi ini. Perhatikan bahwa tidak semua tema Hexo menampilkan data ini, sehingga sebagian besar berfungsi sebagai metadata situs jika relevan. Bagian selanjutnya adalah bagian URL. Di sini, kita ingin mengubah opsi URL. Kita dapat memasukkan alamat IP untuk pengaturan url, kalau kita belum mempunyai nama domain untuk url hexo kita.

Setelah konfigurasi selesai, kita dapat melihat contoh blog sebelum posting siap di publish. Selanjutnya, kita akan memulai dengan perintah :

hexo generate 


hexo server

Kita dapat melihat blog kita dengan mengunjungi http: // your_server_ip: 4000 / di browser. Kita akan melihat blog hexo kita sebelum publish.


Merubah Theme default Hexo
Masuk ke Blog direktori
cd hexo-blog
git clone https://github.com/iissnan/hexo-theme-next themes/next

Mengganti konfigurasi theme di file _config.yml
nano _config.yml

Membersikan konfigurasi awal dan generate konfigurasi baru
hexo clean
hexo generate
Jalan kembali hexo server
hexo server
Melihat blog kita dengan mengunjungi http: // your_server_ip: 4000 / di browser


Konfigurasi Github untuk Hexo

Buat repositori baru di Github dan beri nama kita, contoh bairahmat.github.io
Cara buat Repositori Github bisa baca Catatan ini : Belajar Github
 

Konfigurasi _config.yml 
nano _config.yml
Cari Baris Berikut
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://username_github.io #contoh : bairahmat.github.io
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: https://github.com/your_github_username/hexo_static.git

  # contoh repo : https://github.com/bairahmat/bairahmat.github.io
  branch: master
 

Install hexo-deployer-git di folder blog hexo
npm install hexo-deployer-git --save
Menyiapkan untuk deploy hexo blog kita ke github
hexo clean
hexo generate
hexo deploy 
Untuk melihat contoh repo Blog Hexo di Github 
Cek Disini Bai Rahmat Github

Selamat Mencoba, semoga berhasil ...


Read More

Install Nodejs dan npm dengan PPA di Ubuntu 16.04

Sebuah alternatif untuk mendapatkan versi Node.js yang lebih baru adalah dengan menambahkan PPA (arsip paket pribadi) yang dikelola oleh NodeSource. Ini akan memiliki versi Node.js yang lebih baru daripada repositori resmi Ubuntu, dan memungkinkan kita untuk memilih antara Node.js v4.x (versi dukungan jangka panjang yang lebih lama, yang akan didukung hingga April 2018) , Node.js v6.x (didukung hingga April 2019), dan Node.js v8.x (versi LTS saat ini, didukung hingga Desember 2019).

Pertama, kita perlu menginstal PPA untuk mendapatkan akses, pastikan kita berada di direktori home ubuntu kita, dan gunakan curl untuk mengambil skrip instalasi untuk versi pilihan kita, pastikan untuk mengganti 8.x dengan string versi pilihan kita (jika berbeda):

Kalau paket curl belum terinstall di ubuntu kita, kita dapat menginstallnya dengan perintah sebagai berikut :
sudo apt-get install curl
Setelah terinstall baru kita masuk ke direktori home ubuntu kita :
cd ~
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
Kita dapat memeriksa isi skrip dengan nano (atau editor teks pilihan kita, saya pakai nano):
nano nodesource_setup.sh


Jalankan skrip tadi dengan sudo:
sudo bash nodesource_setup.sh

PPA akan ditambahkan ke konfigurasi ubuntu kita dan cache paket lokal kita akan diperbarui secara otomatis. Setelah menjalankan skrip pengaturan dari nodesource, kita dapat menginstal paket Node.js dengan perintah :
sudo apt-get install -y nodejs


cek versi nodejs dan npm dengan perintah :
nodejs -v
npm -v


Agar beberapa paket npm dapat berfungsi (misalnya, yang memerlukan kompilasi kode dari sumber), kita perlu menginstal paket build-essential:
sudo apt-get install build-essential
Selamat Mencoba, semoga berhasil ya ..



Read More

Install Nginx sebagai reverse proxy untuk Apache di Centos 7

Nginx dan Apache
Nginx dan Apache adalah server web yang kuat. Kekuatan Apache dan kecepatan Nginx sudah sangat dikenal, Namun, keduanya memang memiliki kekurangan. Apache sulit di memori server sementara Nginx tidak dapat memproses PHP sendiri dan memerlukan bantuan PHP-FPM atau modul untuk konten dinamis.


Dalam catatan ini, kita akan menggabungkan dua server web untuk bisa mendapatkan hasil terbaik satu sama lain, Kita akan menetapkan Nginx sebagai prosesor konten statis dan Apache untuk memproses konten belakang dan dinamis.

Install and Konfigurasi Nginx
Update repositories
yum update
Install Epel repositories
yum install epel-release
Install Nginx di Centos 7
yum install nginx
Enable dan start Nginx service
systemctl enable nginx
systemctl start nginx
Membuat Konfigurasi Nginx
nano /etc/nginx/conf.d/default.conf
contoh konfigurasi :
server {
      listen   80;

      root /usr/share/nginx/html/;
      index index.php index.html index.htm;

      server_name _;

      location / {
      try_files $uri $uri/ /index.php;
          }

      location ~ \.php$ {
     
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:8080/;

           }

       location ~ /\.ht {
              deny all;
          }
}
Install dan Konfigurasi Apache

Install Apache web server:

yum install httpd
Start dan enable apache service:
systemctl enable httpd
systemctl start httpd
Konfigurasi Apache
Kita perlu mengkonfigurasi Apache untuk menjadi backend, kita perlu mengkonfigurasi Apache pada port 8080:

vi /etc/httpd/conf/httpd.conf
Temukan baris yang dimulai dengan “Listen”, ganti baris berikut dengan dibawah ini:
Listen 127.0.0.1:8080
Kemudian temukan baris yang dimulai dengan “DocumentRoot” dan ubah seperti di bawah ini:
DocumentRoot "/path/folder root kita/"
Save and Exit.

Install PHP v7.1.0
Hal pertama yang akan kita lakukan adalah menginstal tambahan CentOS7 repo yang berisi paket-paket yang diperlukan untuk PHP v7.1

wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
Aktifkan repositori php71 yang dinonaktifkan secara default:
yum install yum-utils -y
yum-config-manager --enable remi-php71
install PHP package:
yum --enablerepo=remi,remi-php71 install php-fpm php-common
Install common modules:
yum --enablerepo=remi,remi-php71 install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Konfigurasi PHP-FPM supaya berjalan di user apache
vi /etc/php-fpm.d/www.conf
Temukan and replace baris berikut:
user = apache
group = apache
dibawah baris ;listen = 127.0.0.1:9000 kita tambahkan file:
listen = /var/run/php-fpm/php-fpm.sock
Simpan file dengan menekan CTRL + X. Dan akhirnya, mulai php-fpm dan aktifkan saat boot:
systemctl start php-fpm.service
systemctl enable php-fpm.service
Selamat mencoba dan semoga berhasil. ( bairahmat.github.io )



Read More

Cara mempublikasikan multiple domain, satu IP public dengan HAProxy.

Sering kali kita membutuhkan untuk menerbitkan banyak situs website dari jaringan internal, tetapi hanya ada satu alamat IP publik yang tersedia. Bagaimana ini bisa dilakukan dengan mudah ? HAProxy dapat membantu dengan hal tersebut.


Keterangan IP ( gambar diatas )
Virtual Machine - VM HAProxy : 10.10.1.3
Virtual Machine - VM Webserver 1 : 10.10.1.4
Virtual Machine - VM Webserver 2 : 10.10.1.5
Virtual Machine - VM Webserver 3 : 10.10.1.6

Contoh, kita memiliki 3 domain/subdomain yang terpointing ke alamat satu IP public: 
- bairahmat.my.id 
- pihole.bairahmat.my.id 
- hotspot.bairahmat.my.id

Yang kita butuhkan : 
- Satu IP Public 
- Mikrotik ( sudah tertanam IP Public di ether-internet) 
- Haproxy ( VM Proxmox ) Cara install HAProxy bisa lihat di Cara Install HAProxy

Contoh Konfigurasi NAT di Mikrotik
/ip firewall nat
add action=dst-nat chain=dstnat comment="To Haproxy" dst-address=(IP Public ) dst-port=80,8080 protocol=tcp to-addresses=IP HAProxy
Contoh konfigurasi di HAProxy:
Menambahkan konfigurasi Haproxy dengan perintah :
nano /etc/haproxy/haproxy.cfg
Contoh Konfigurasi haproxy.cfg
global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private
        ssl-server-verify required
        tune.maxrewrite 4096
        tune.http.maxhdr 2024

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        option forwardfor
        retries 3
        redispatch
        maxconn 2000
        clitimeout 2s
        srvtimeout 3s
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http
       
        stats enable
        stats auth admin:admin
        stats uri /stats

resolvers dns
  nameserver public-0 10.10.1.1:53
  hold valid 1s

frontend http
        bind *:80
        bind *:8080
        reqadd X-Forwarded-Proto:\ http
        mode http

        acl web1_url hdr_dom(host) -i bairahmat.my.id
        acl web2_url hdr_dom(host) -i pihole.bairahmat.my.id
        acl web3_url hdr_dom(host) -i hotspot.bairahmat.my.id

        use_backend WEB-1 if web1_url   
        use_backend WEB-2 if web2_url
        use_backend WEB-3 if web3_url

backend WEB-1
        http-request set-header X-Forwarded-Port %[dst_port]
        rspadd Strict-Transport-Security:\ max-age=15768000;\ includeSubDomains

        balance roundrobin
        option forwardfor
        cookie JSESSIONID prefix
        server web-1 10.10.1.4:80 check

backend WEB-2
        http-request set-header X-Forwarded-Port %[dst_port]
        rspadd Strict-Transport-Security:\ max-age=15768000;\ includeSubDomains

        balance roundrobin
        option forwardfor
        cookie JSESSIONID prefix
        server web-2 10.10.1.5:80 check

backend WEB-3
        http-request set-header X-Forwarded-Port %[dst_port]
        rspadd Strict-Transport-Security:\ max-age=15768000;\ includeSubDomains

        balance roundrobin
        option forwardfor
        cookie JSESSIONID prefix
        server web-3 10.10.1.6:80 check
Silahkan mencoba, semoga berhasil ...



Read More

Membuat Markdown Presentasi Online dengan GITPITCH

Apa itu GitPitch ?
GitPitch adalah layanan presentasi markdown online di Git, Gitlab dan Bitbucket. Kita dapat menggunakannya untuk mempromosikan, atau menyajikan apa pun dengan menggunakan alat penulisan yang sudah kita kenal - Markdown.


Layanan ini memperkenalkan konvensi baru untuk pengguna Git, yang disebut PITCHME.md. GitPitch mengubah file markdown PITCHME.md yang ada dalam repo publik atau pribadi menjadi tayangan slide interaktif dan offline. 

Markdown → Git → Slideshow

Membuat Repo di Git 
Cara membuat Repo Git bisa baca disini Belajar Git on Github

Contoh kita akan membuat repo dengan nama my-presentasi 


Membuat file README.md ( Etika di Git ).
README.md berfungsi untuk menjelaskan ke pembaca, apa yang sedang kita buat.




Membuat file PITCHME.md
File PITCHME.md adalah file yang berisi isi presentasi, dimana yang ditulis dengan Markdown.





Contoh Markdown di PITCHME.md

##### Pengantar Praktis Markdown Presentasi Online

---
@title[PITCHME.md]

#### GitPitch mengubah <span class="gold">PITCHME.md</span> menjadi
#### interactive online and offline slideshows.
<br>
<span class="aside">Just like this one...</span>
---
#### Tidak lagi <span class="gray">Menggunakan Keynote</span>.
#### Tidak lagi <span class="gray">Menggunakan Powerpoint</span>.
<br>
#### Menulis dengan <span class="gold">Markdown</span>.
#### Kemudian  <span class="gold">Git-Commit di Github</span>.
---
Silahkan untuk mecoba akses presentasi di
https://gitpitch.com/user-github/nama-repo
atau bisa juga disini Contoh Presentasi Sederhana

Membuat file PITCHME.yaml
Contoh file PITCHME.yaml
theme : night
theme-override : assets/css/PITCHME.css
logo : assets/images/anak-desa.jpg
highlight : atom-one-light
transition : concave
published : true
footnote : "Contoh Presentasi Online"
remote-control: true
slide-number : true
background : /assets/images/wallpaper.jpg
background-size: cover
remote-control: true
slide-number : true
mousewheel : true
Membuat Folder assest/css dan assets/images via terminal di Ubuntu.
Clone Repo Github
git clone https://github.com/user-github/nama-repo.git
Membuat folder assets
cd nama-repo (hasil clone diatas)
mkdir -p assets/css
mkdir -p assets/images
Membuat file PITCHME.css
nano assets/css/PITCHME.css
contoh PITCHME.css
/*
 * GitPitch Custom CSS Styling
 *
 * For details, visit Wiki:
 * https://github.com/gitpitch/gitpitch/wiki/Slideshow-Custom-CSS
 */

.reveal p span.slide-title {
  padding: 4px 15px;
  border-radius: 15px;
  color: #eee !important;
  font-weight: normal !important;
  line-height: 1.2 !important;
  letter-spacing: -0.03em !important;
  font-family: "Montserrat", Impact, sans-serif !important;
}

.reveal .slides section .code-presenting-annotation {
  color: white !important;
  background: #1f1c18;
  padding: 1px 15px;
  border-radius: 15px;
  opacity: 0.75 !important;
  font-size: 50% !important;
}

.reveal pre {
  width: 100%;
  box-shadow : none;
}

.reveal pre code {
  font-size: 1.2em;
  line-height: 1.2;
  border-radius: 10px;
}

.reveal .slides section .code-presenting-annotation {
  color: gray;
}

#gp-logo img {
  max-height: 1.5em;
  max-width: none;
}

.shoutout {
  color: #e49436;
  font-size: 1.5em !important;
}
Menambahkan file gambar background presentasi kita di foleder assets/images

Setelah semua selesai, kita push ulang repo lokal yang baru kita buat ke repo github, caranya bisa dilihat disini Belajar Git on Github

Silahkan cek lagi Gitpitch kita di   https://gitpitch.com/user-github/nama-repo
apakah sudah berubah ?

Selamat Mencoba, semoga berhasil

Lihat juga Presentasi Online Gitpitch

Read More

Fungsi-fungsi Mikrotik Router

Mikrotik Sebagai Gateway koneksi Internet
 
Fungsi inilah yang sering kita digunakan dalam pemanfaatan Mikrotik Router. Mikrotik difungsikan sebagai jalan keluarnya jaringan internal (LAN) menuju ke Internet (WAN).  Jaringan LAN tersebut bisa dikatakan sebagai client yang menggunakan device/alat yang berbeda, misalnya laptop, pc, smartphone maupun tablet.


Selain difungsikan sebagai gateway, mikrotik juga dapat mengatur lalu lintas data (filtering). Mikrotik dapat kita setting untuk membuka dan menutup akses tertentu, misalkan client 1 tidak boleh mengakses web facebook, client 2 tidak boleh mengakses web youtube, atau semua client tidak bisa mengakses satu atau beberapa web. Selain melakukan blocking akses internet, mikrotik router juga dapat berfungsi sebagai management penggunaan bandwidth client.

Mikrotik Sebagai Gateway Hotspot (Access Point)
 
Fungsi lainnya dari fungsi mikrotik sebagai gateway, pada mikrotik seri tertentu sudah terdapat interal radio Wireless, contohnya RB941-2nD-TC (Hap Lite) sudah menggunakan standar wireless  802.11b/g/n. Kita bisa menggunakan mikrotik tersebut sebagai access point bagi client kita, dan fungsi wireless tersebut dapat diaktifkan dan dinonaktifkan.

Selain dari fungsi Access Point, mikrotik dapat berfungsi sebagai Hotspot seperti di lokasi-lokasi umum, RT-RW Net, di sekolah, kantor dan lokasi manapun. Clinet arus menggunakan user otentikasi untuk dapat menggunakan fasilitas Internet pada wilayah kita. Jenis otentikasi tersebut dapat dihubungkan dengan Radius Server.

Fasilitas Hotspot ini dapat dikonfigurasi sesuai dengan kondisi yang kita punya, misalkan tampilan halaman login dapat di modifikasi sedemikian rupa sesuai selera kita, kemudian kita dapat mengkonfigurasi nama hotspot, user profil, berapa lama dia bisa mengakses internet, berapa lama dia akan otomatis logout ketika dia tidak aktif, web mana yang tidak harus menggunakan otentikasi.

Mikrotik Sebagai DHCP Server
 
Fungsi ini yang paling sering digunakan. Dimana client tidak diharuskan merubah/mengkonfigurasi ip address client, terutama bagi orang awam yang tidak paham untuk merubah ip. User yang sudah terkoneksi ke jaringan Lan dapat otomatis mendapatkan IP yang diberikan oleh Mikrotik sesuai dengan aturan dan pool yang disediakan, menggunakan DHCP server ini hanya untuk melakukan file sharing dan printer sharing tanpa adanya koneksi internet (hanya akses LAN). Server diharuskan menggunakan IP Static dan client lainnya boleh menggunakan DHCP.

Mikrotik Sebagai Bridge
 
Mikrotik Router Board memiliki beberapa port dan dapat difungsikan sebagai Bridge. Bridge berarti jembatan yang menghubungkan. Fitur ini dapat menggabungkan beberpa port menjadi satu (1) yang memungkinkan adanya interkoneksi host yang terhubung ke LAN yang terpisah. Pada topologi yang kompleks, adanya loop pada jaringan mungkin terjadi. jika terjadi loop maka jaringan akan terhambat. Dalam mode bridge terdapat satu fungsi yaitu RSTP (Rapid Spanning Tree Protokol) adalah mode pengembangan dari yang sebelumnya yaitu STP (Spanning Tree Protokol) dan ini adalah fungsi untuk menghindari loop dalam jaringan dan portokol tersebut mengatur lalu lintas data dalam bridge.

Mikrotik Sebagai VPN Server
 
Dalam mikrotik router, VPN dikenal dengan PPTP, adalah koneksi yang aman untuk mengirimkan data dengan menggunakan PPP. Mikrotik dalam pengamanannya menggunakan MPPE (Microsoft Point to Point Encryption) untuk membuat alur tersebut terenkripsi. PPTP mikrotik menggunakan username dan password untuk mengakses jaringan internal. Fungsi VPN ini sangat menarik, kita dapat mengontrol lalu lintas data, remote pc.

Mikrotik Sebagai Routing
 
Ini adalah fungsi utama dari Mikrotik Router, yaitu menghubungkan beberapa network dan berusaha untuk mencari jalur terbaik dalam menuju komputer/device tujuan. Jika kita memiliki 4 jalur koneksi, dan antara jaringan tersebut harus bisa saling tukar data/informasi, maka kita harus mengkonfigurasikan router tersebut, router mana yang paling terdekat untuk melakukan routing.


Read More

Catatan Tentang Mikrotik RouterOS

Apa Itu Mikrotik RouterOS ?

MikroTik RouterOS merupakan sistem operasi yang diperuntukkan sebagai network router. MikroTik routerOS sendiri adalah sistem operasi dan perangkat lunak yang dapat digunakan untuk menjadikan komputer biasa menjadi router network yang handal, mencakup berbagai fitur yang dibuat untuk ip network dan jaringan wireless.

Fitur-fitur Mikrotik diantaranya: Firewall & Nat, Routing, Hotspot, Point to Point Tunneling Protocol, DNS server, DHCP server, Hotspot, dan masih banyak lagi fitur lainnya. Mikrotik didesain untuk memberikan kemudahan bagi penggunanya. Administrasinya bisa dilakukan melalui Windows Application (WinBox). Selain itu instalasi dapat dilakukan pada Standard komputer PC (Personal Computer). PC yang akan dijadikan router mikrotik pun tidak memerlukan resource yang cukup besar untuk penggunaan standard, misalnya hanya sebagai gateway.

File image MikroTik RouterOS bisa diunduh dari website resmi MikroTik, www.mikrotik.com. Namun, file image ini merupakan versi trial MikroTik yang hanya dapat digunakan dalam waktu 24 jam saja. Untuk dapat menggunakannya secara full time, anda harus membeli lisensi key dengan catatan satu lisensi hanya untuk satu harddisk.

Level Mikrotik RouterOS dan Kemampuannya

Mikrotik RouterOS hadir dalam berbagai level. Tiap level memiliki kemampuannya masing-masing, mulai dari level 3, hingga level 6. Secara singkat, level 3 digunakan untuk router berinterface ethernet, level 4 untuk wireless client atau serial interface, level 5 untuk wireless AP, dan level 6 tidak mempunyai limitasi apapun.

Untuk penggunan hotspot, bisa digunakan level 4 (200 pengguna), level 5 (500 pengguna) dan level 6 (tidak terbatas).

Baca Juga : Fungsi Mikrotik Router



Read More