Apache Answer

Apache Answer

Apache Answer adalah perangkat lunak platform tanya jawab (Q&A) sumber terbuka yang dikembangkan oleh Apache Software Foundation. Platform ini dirancang untuk membantu tim dalam berbagai skala membangun komunitas, pusat bantuan, atau platform manajemen pengetahuan.

Fitur Utama Apache Answer:

  • Pengalaman Tanya Jawab yang Terpadu: Memungkinkan pengguna untuk mengajukan dan menjawab pertanyaan dengan mudah, dilengkapi dengan pratinjau real-time menggunakan Markdown yang kompatibel dengan CommonMark.
  • Manajemen Komunitas yang Mudah: Menyediakan peran admin, moderator, dan pengguna untuk pengelolaan akses yang optimal, sistem penandaan intuitif untuk pengorganisasian konten, serta kolaborasi pengeditan terbuka dengan riwayat revisi yang transparan.
  • Pengembangan Komunitas yang Sehat: Mendukung sistem voting, reputasi, notifikasi, dan profil pengguna untuk mendorong partisipasi aktif dan interaksi yang bermakna dalam komunitas.
  • Kustomisasi dan Plugin: Memungkinkan penyesuaian tema dan tata letak, serta integrasi plugin untuk menambahkan fitur sesuai kebutuhan, seperti login pihak ketiga, cache, dan pencarian.
  • Privasi dan Keamanan: Menawarkan kontrol akses login dan konten untuk memastikan lingkungan komunitas yang aman dan terproteksi.

Apache Answer mendukung berbagai bahasa, tata letak responsif untuk akses dari berbagai perangkat, dan mode gelap untuk pengalaman pengguna yang dipersonalisasi. Dengan arsitektur yang memisahkan front-end dan back-end, platform ini memberikan fleksibilitas dalam pengembangan dan penyesuaian lebih lanjut.

1. Persyaratan Sistem

System requirements untuk menjalankan Apache Answer 1.4:

  • Docker dengan docker composer
  • Database MySQL/MariaDB atau PostgreSQL
  • Nginx untuk reverse proxy
  • Certbot untuk SSL Let’s Encrypt

Sebelum memulai deploy, siapkan:

  • VPS atau server dengan OS Ubuntu 24.04 LTS
  • Akses SSH ke server
  • Domain yang sudah diarahkan ke server

2. Persiapan Server

Update sistem

sudo apt update
sudo apt upgrade -y

Install Docker

sudo sh -c "$(curl -fsSL https://get.docker.com/)"

Install MariaDB

sudo apt install mariadb-server -y

Login ke MariaDB

sudo mysql

Buat database

CREATE DATABASE apache_answer;
CREATE USER 'apache_answer'@'localhost' IDENTIFIED BY 'rahasia';
GRANT ALL PRIVILEGES ON apache_answer.* TO 'apache_answer'@'localhost';
FLUSH PRIVILEGES;
exit

Install Nginx

sudo apt install nginx -y

Install certbot untuk Nginx

sudo apt install certbot python3-certbot-nginx -y

3. Install Apache Answer

Buat direktori

mkdir apache-answer
cd apache-answer

Buat file docker-compose.yaml

nano docker-compose.yml

Masukkan konfigurasinya

services:
  answer:
    image: apache/answer
    ports:
      - "9080:80"
    depends_on:
      - mariadb
    environment:
      - DB_HOST=mariadb
      - DB_USER=apache_answer
      - DB_PASSWORD=rahasia
      - DB_NAME=apache_answer
    volumes:
      - ./answer-data:/data
    networks:
      - answer
    restart: on-failure  
  mariadb:
    image: mariadb
    ports:
      - ":3306"
    environment:
      - MYSQL_ROOT_PASSWORD=rahasia
      - MYSQL_DATABASE=apache_answer
      - MYSQL_USER=apache_answer
      - MYSQL_PASSWORD=rahasia
    volumes:
      - ./mariadb-data:/var/lib/mysql
    networks: 
      - answer
    restart: on-failure

networks:
  answer:

Jalankan docker compose

sudo docker compose up -d

Akses http://IP-SERVER:9080 untuk instalasi

  1. Memilih bahasa, pilih English, lalu Next
  2. Memilih database engine, MariaDB/MySQL, masukkan username, password, database, dan host mariadb:3306, lalu Next
  3. Membuat config.yml, Next
  4. Masukkan Site Information dan Admin Account, lalu Next
  5. Your site is ready, instalasi selesai, klik Done

4. Konfigurasi Nginx

Buat konfigurasi Nginx untuk reverse proxy Docker container

sudo nano /etc/nginx/sites-available/forum.contoh.com.conf

Masukkan konfigurasinya

server {
    listen 80;
    server_name forum.contoh.com;

    location / {
        proxy_pass http://localhost:9080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

Aktifkan konfigurasinya

sudo ln -s /etc/nginx/sites-available/forum.contoh.com.conf /etc/nginx/sites-enabled/

Restart Nginx

sudo systemctl restart nginx

Request sertifikat SSL

sudo certbot --non-interactive \
    -m [email protected] \
    --agree-tos \
    --no-eff-email \
    --nginx -d forum.contoh.com \
    --redirect	

Akses https://forum.contoh.com, Apache Answer siap digunakan.