<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.smpyppksantodonboscofakfak.sch.id/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Smpdbos</id>
	<title>Dboswiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.smpyppksantodonboscofakfak.sch.id/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Smpdbos"/>
	<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php/Special:Contributions/Smpdbos"/>
	<updated>2026-09-23T16:51:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=448</id>
		<title>Update max file wordpress di container docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=448"/>
		<updated>2026-09-16T12:57:19Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Cara 1: Menggunakan File uploads.ini Kustom (Paling Rapi &amp;amp; Permanen) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cara 1: Menggunakan File uploads.ini Kustom (Paling Rapi &amp;amp; Permanen)==&lt;br /&gt;
Cara terbaik adalah membuat file konfigurasi PHP di server Ubuntu Anda, lalu melakukan mapping (volume) file tersebut ke dalam container Docker melalui docker-compose.yml. &lt;br /&gt;
[1] (https://plasawebhost.com/panduan/cara-install-wordpress-dengan-docker-compose-di-ubuntu-server.html)&lt;br /&gt;
&lt;br /&gt;
1. Di server Ubuntu Anda (di folder yang sama dengan file docker-compose.yml), &lt;br /&gt;
buat file baru bernama uploads.ini:&lt;br /&gt;
 nano uploads.ini&lt;br /&gt;
2. Masukkan konfigurasi batas upload yang Anda inginkan (misal: 64MB atau 256MB):&lt;br /&gt;
 upload_max_filesize = 256M&lt;br /&gt;
 post_max_size = 256M&lt;br /&gt;
 memory_limit = 512M&lt;br /&gt;
 max_execution_time = 300&lt;br /&gt;
3. Buka file docker-compose.yml Anda, lalu tambahkan baris uploads.ini tersebut ke dalam bagian volumes milik service wordpress:&lt;br /&gt;
yaml&lt;br /&gt;
  services:&lt;br /&gt;
  wordpress:&lt;br /&gt;
    image: wordpress:latest&lt;br /&gt;
    # ... konfigurasi lain ...&lt;br /&gt;
    volumes:&lt;br /&gt;
      - wp_data:/var/www/html&lt;br /&gt;
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
4. Restart container Anda agar konfigurasi baru diterapkan:&lt;br /&gt;
   docker compose down &amp;amp;&amp;amp; docker compose up -d&lt;br /&gt;
&lt;br /&gt;
==Cara 2: Langsung Mengedit File di Dalam Container (Cepat, Tapi Sementara)==&lt;br /&gt;
Jika Anda ingin mengubahnya langsung tanpa menyentuh docker-compose.yml, Anda bisa masuk ke dalam container, tetapi cara ini bisa hilang jika container di-rebuild atau di-update.&lt;br /&gt;
Masuk ke dalam container WordPress Anda:&lt;br /&gt;
 docker exec -it &amp;lt;nama_atau_id_container_wordpress&amp;gt; bash&lt;br /&gt;
Di dalam container Docker resmi WordPress, folder konfigurasi PHP berada di /usr/local/etc/php/conf.d/. &lt;br /&gt;
Anda bisa membuat file konfigurasi baru di sana:&lt;br /&gt;
 echo &#039;upload_max_filesize = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
 echo &#039;post_max_size = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
 echo &#039;memory_limit = 512M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
Keluar dari container (exit) lalu restart container tersebut:&lt;br /&gt;
 docker restart &amp;lt;nama_atau_id_container_wordpress&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=447</id>
		<title>Update max file wordpress di container docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=447"/>
		<updated>2026-09-16T12:56:50Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cara 1: Menggunakan File uploads.ini Kustom (Paling Rapi &amp;amp; Permanen)==&lt;br /&gt;
Cara terbaik adalah membuat file konfigurasi PHP di server Ubuntu Anda, lalu melakukan mapping (volume) file tersebut ke dalam container Docker melalui docker-compose.yml. &lt;br /&gt;
[1] (https://plasawebhost.com/panduan/cara-install-wordpress-dengan-docker-compose-di-ubuntu-server.html)&lt;br /&gt;
1. Di server Ubuntu Anda (di folder yang sama dengan file docker-compose.yml), &lt;br /&gt;
buat file baru bernama uploads.ini:&lt;br /&gt;
 nano uploads.ini&lt;br /&gt;
2. Masukkan konfigurasi batas upload yang Anda inginkan (misal: 64MB atau 256MB):&lt;br /&gt;
 upload_max_filesize = 256M&lt;br /&gt;
 post_max_size = 256M&lt;br /&gt;
 memory_limit = 512M&lt;br /&gt;
 max_execution_time = 300&lt;br /&gt;
3. Buka file docker-compose.yml Anda, lalu tambahkan baris uploads.ini tersebut ke dalam bagian volumes milik service wordpress:&lt;br /&gt;
yaml&lt;br /&gt;
  services:&lt;br /&gt;
  wordpress:&lt;br /&gt;
    image: wordpress:latest&lt;br /&gt;
    # ... konfigurasi lain ...&lt;br /&gt;
    volumes:&lt;br /&gt;
      - wp_data:/var/www/html&lt;br /&gt;
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
4. Restart container Anda agar konfigurasi baru diterapkan:&lt;br /&gt;
   docker compose down &amp;amp;&amp;amp; docker compose up -d&lt;br /&gt;
&lt;br /&gt;
==Cara 2: Langsung Mengedit File di Dalam Container (Cepat, Tapi Sementara)==&lt;br /&gt;
Jika Anda ingin mengubahnya langsung tanpa menyentuh docker-compose.yml, Anda bisa masuk ke dalam container, tetapi cara ini bisa hilang jika container di-rebuild atau di-update.&lt;br /&gt;
Masuk ke dalam container WordPress Anda:&lt;br /&gt;
 docker exec -it &amp;lt;nama_atau_id_container_wordpress&amp;gt; bash&lt;br /&gt;
Di dalam container Docker resmi WordPress, folder konfigurasi PHP berada di /usr/local/etc/php/conf.d/. &lt;br /&gt;
Anda bisa membuat file konfigurasi baru di sana:&lt;br /&gt;
 echo &#039;upload_max_filesize = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
 echo &#039;post_max_size = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
 echo &#039;memory_limit = 512M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
Keluar dari container (exit) lalu restart container tersebut:&lt;br /&gt;
 docker restart &amp;lt;nama_atau_id_container_wordpress&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=446</id>
		<title>Update max file wordpress di container docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=446"/>
		<updated>2026-09-16T12:56:02Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cara 1: Menggunakan File uploads.ini Kustom (Paling Rapi &amp;amp; Permanen)&lt;br /&gt;
Cara terbaik adalah membuat file konfigurasi PHP di server Ubuntu Anda, lalu melakukan mapping (volume) file tersebut ke dalam container Docker melalui docker-compose.yml. &lt;br /&gt;
[1] (https://plasawebhost.com/panduan/cara-install-wordpress-dengan-docker-compose-di-ubuntu-server.html)&lt;br /&gt;
1. Di server Ubuntu Anda (di folder yang sama dengan file docker-compose.yml), &lt;br /&gt;
buat file baru bernama uploads.ini:&lt;br /&gt;
 nano uploads.ini&lt;br /&gt;
2. Masukkan konfigurasi batas upload yang Anda inginkan (misal: 64MB atau 256MB):&lt;br /&gt;
 upload_max_filesize = 256M&lt;br /&gt;
 post_max_size = 256M&lt;br /&gt;
 memory_limit = 512M&lt;br /&gt;
 max_execution_time = 300&lt;br /&gt;
3. Buka file docker-compose.yml Anda, lalu tambahkan baris uploads.ini tersebut ke dalam bagian volumes milik service wordpress:&lt;br /&gt;
yaml&lt;br /&gt;
  services:&lt;br /&gt;
  wordpress:&lt;br /&gt;
    image: wordpress:latest&lt;br /&gt;
    # ... konfigurasi lain ...&lt;br /&gt;
    volumes:&lt;br /&gt;
      - wp_data:/var/www/html&lt;br /&gt;
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
4. Restart container Anda agar konfigurasi baru diterapkan:&lt;br /&gt;
   docker compose down &amp;amp;&amp;amp; docker compose up -d&lt;br /&gt;
&lt;br /&gt;
Cara 2: Langsung Mengedit File di Dalam Container (Cepat, Tapi Sementara)&lt;br /&gt;
Jika Anda ingin mengubahnya langsung tanpa menyentuh docker-compose.yml, Anda bisa masuk ke dalam container, tetapi cara ini bisa hilang jika container di-rebuild atau di-update.&lt;br /&gt;
Masuk ke dalam container WordPress Anda:&lt;br /&gt;
 docker exec -it &amp;lt;nama_atau_id_container_wordpress&amp;gt; bash&lt;br /&gt;
Di dalam container Docker resmi WordPress, folder konfigurasi PHP berada di /usr/local/etc/php/conf.d/. &lt;br /&gt;
Anda bisa membuat file konfigurasi baru di sana:&lt;br /&gt;
 echo &#039;upload_max_filesize = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
 echo &#039;post_max_size = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
 echo &#039;memory_limit = 512M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
Keluar dari container (exit) lalu restart container tersebut:&lt;br /&gt;
 docker restart &amp;lt;nama_atau_id_container_wordpress&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=445</id>
		<title>Update max file wordpress di container docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Update_max_file_wordpress_di_container_docker&amp;diff=445"/>
		<updated>2026-09-16T12:47:22Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot;Cara 1: Menggunakan File uploads.ini Kustom (Paling Rapi &amp;amp; Permanen) Cara terbaik adalah membuat file konfigurasi PHP di server Ubuntu Anda, lalu melakukan mapping (volume) file tersebut ke dalam container Docker melalui docker-compose.yml. [1] (https://plasawebhost.com/panduan/cara-install-wordpress-dengan-docker-compose-di-ubuntu-server.html)Di server Ubuntu Anda (di folder yang sama dengan file docker-compose.yml), buat file baru bernama uploads.ini:bashnano uploads.i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cara 1: Menggunakan File uploads.ini Kustom (Paling Rapi &amp;amp; Permanen)&lt;br /&gt;
Cara terbaik adalah membuat file konfigurasi PHP di server Ubuntu Anda, lalu melakukan mapping (volume) file tersebut ke dalam container Docker melalui docker-compose.yml. [1] (https://plasawebhost.com/panduan/cara-install-wordpress-dengan-docker-compose-di-ubuntu-server.html)Di server Ubuntu Anda (di folder yang sama dengan file docker-compose.yml), buat file baru bernama uploads.ini:bashnano uploads.ini&lt;br /&gt;
Use code with caution.Masukkan konfigurasi batas upload yang Anda inginkan (misal: 64MB atau 256MB):iniupload_max_filesize = 256M&lt;br /&gt;
post_max_size = 256M&lt;br /&gt;
memory_limit = 512M&lt;br /&gt;
max_execution_time = 300&lt;br /&gt;
Use code with caution.Buka file docker-compose.yml Anda, lalu tambahkan baris uploads.ini tersebut ke dalam bagian volumes milik service wordpress:yamlservices:&lt;br /&gt;
  wordpress:&lt;br /&gt;
    image: wordpress:latest&lt;br /&gt;
    # ... konfigurasi lain ...&lt;br /&gt;
    volumes:&lt;br /&gt;
      - wp_data:/var/www/html&lt;br /&gt;
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
Use code with caution.4. Restart container Anda agar konfigurasi baru diterapkan:&lt;br /&gt;
   ```bash&lt;br /&gt;
   docker compose down &amp;amp;&amp;amp; docker compose up -d&lt;br /&gt;
Cara 2: Langsung Mengedit File di Dalam Container (Cepat, Tapi Sementara)Jika Anda ingin mengubahnya langsung tanpa menyentuh docker-compose.yml, Anda bisa masuk ke dalam container, tetapi cara ini bisa hilang jika container di-rebuild atau di-update.Masuk ke dalam container WordPress Anda:bashdocker exec -it &amp;lt;nama_atau_id_container_wordpress&amp;gt; bash&lt;br /&gt;
Use code with caution.Di dalam container Docker resmi WordPress, folder konfigurasi PHP berada di /usr/local/etc/php/conf.d/. Anda bisa membuat file konfigurasi baru di sana:bashecho &#039;upload_max_filesize = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
echo &#039;post_max_size = 256M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
echo &#039;memory_limit = 512M&#039; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/uploads.ini&lt;br /&gt;
Use code with caution.Keluar dari container (exit) lalu restart container tersebut:bashdocker restart &amp;lt;nama_atau_id_container_wordpress&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_cmatrix_sebagai_screensaver_server_ubuntu&amp;diff=444</id>
		<title>Install cmatrix sebagai screensaver server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_cmatrix_sebagai_screensaver_server_ubuntu&amp;diff=444"/>
		<updated>2026-09-14T08:27:10Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= CMatrix sebagai Screen Saver pada Ubuntu Server =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CMatrix&#039;&#039;&#039; adalah program terminal yang menampilkan efek karakter menyerupai tampilan komputer pada film &#039;&#039;The Matrix&#039;&#039;. Pada [[Ubuntu Server]], CMatrix dapat digunakan sebagai tampilan layar penuh pada [[TTY]] sehingga layar fisik laptop yang digunakan sebagai server dapat menampilkan animasi CMatrix tanpa memerlukan lingkungan desktop seperti GNOME, KDE, atau X11.&lt;br /&gt;
&lt;br /&gt;
Tutorial ini menjelaskan cara menjalankan CMatrix secara otomatis pada &#039;&#039;&#039;TTY1&#039;&#039;&#039; menggunakan [[systemd]]. Dengan konfigurasi ini, CMatrix akan ditampilkan langsung pada layar laptop dan tetap dapat dikendalikan dari komputer lain melalui [[SSH]].&lt;br /&gt;
&lt;br /&gt;
== Tujuan ==&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi selesai, sistem akan bekerja dengan alur berikut:&lt;br /&gt;
&lt;br /&gt;
Ubuntu Server melakukan boot&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
        TTY1&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
      CMATRIX&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
   Layar laptop server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Administrator tetap dapat mengakses server melalui SSH:&lt;br /&gt;
&lt;br /&gt;
Komputer lain&lt;br /&gt;
      │&lt;br /&gt;
      │ SSH&lt;br /&gt;
      ▼&lt;br /&gt;
Ubuntu Server&lt;br /&gt;
      │&lt;br /&gt;
      ├── systemctl start cmatrix-screensaver&lt;br /&gt;
      ├── systemctl stop cmatrix-screensaver&lt;br /&gt;
      ├── systemctl restart cmatrix-screensaver&lt;br /&gt;
      └── systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fitur ===&lt;br /&gt;
&lt;br /&gt;
* CMatrix tampil langsung pada layar laptop.&lt;br /&gt;
* Tidak membutuhkan desktop GUI atau X11.&lt;br /&gt;
* Otomatis aktif setelah Ubuntu melakukan boot.&lt;br /&gt;
* Tetap dapat dikendalikan melalui SSH.&lt;br /&gt;
* Dapat dihentikan, dijalankan, dan di-restart menggunakan &#039;&#039;systemctl&#039;&#039;.&lt;br /&gt;
* Cocok untuk laptop yang digunakan sebagai server.&lt;br /&gt;
* TTY1 digunakan secara khusus untuk tampilan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Persyaratan ==&lt;br /&gt;
&lt;br /&gt;
Tutorial ini ditujukan untuk komputer dengan:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Server.&lt;br /&gt;
* Akses pengguna dengan hak &#039;&#039;sudo&#039;&#039;.&lt;br /&gt;
* Program CMatrix sudah terpasang.&lt;br /&gt;
* Layar laptop terhubung secara langsung ke server.&lt;br /&gt;
* Akses SSH dari komputer lain jika administrasi dilakukan secara jarak jauh.&lt;br /&gt;
&lt;br /&gt;
Jika CMatrix belum terpasang, jalankan:&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install cmatrix -y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verifikasi instalasi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 which cmatrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang umum adalah:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/cmatrix&lt;br /&gt;
&lt;br /&gt;
== Memeriksa TTY1 ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu menyediakan beberapa terminal virtual yang disebut [[TTY]]. Terminal virtual pertama biasanya tersedia sebagai:&lt;br /&gt;
&lt;br /&gt;
 /dev/tty1&lt;br /&gt;
&lt;br /&gt;
Periksa keberadaan TTY1 dengan perintah:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ls -l /dev/tty1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika tersedia, sistem akan menampilkan perangkat terminal yang mengarah ke &#039;&#039;/dev/tty1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TTY1 akan digunakan sebagai layar khusus untuk CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Menonaktifkan Getty pada TTY1 ==&lt;br /&gt;
&lt;br /&gt;
Secara default, Ubuntu menjalankan layanan &#039;&#039;getty&#039;&#039; pada TTY1 untuk menyediakan layar login terminal.&lt;br /&gt;
&lt;br /&gt;
Karena TTY1 akan digunakan oleh CMatrix, layanan tersebut perlu dihentikan dan dinonaktifkan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl disable --now getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Perintah tersebut membuat TTY1 tidak lagi digunakan sebagai terminal login biasa.&lt;br /&gt;
&lt;br /&gt;
{{Note|Setelah konfigurasi ini diterapkan, TTY1 digunakan untuk menjalankan CMatrix. Terminal virtual lain seperti TTY2 dan TTY3 tetap dapat digunakan untuk administrasi lokal.}}&lt;br /&gt;
&lt;br /&gt;
== Membuat systemd Service ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu menggunakan [[systemd]] sebagai sistem dan pengelola layanan. Sebuah service khusus akan dibuat untuk menjalankan CMatrix pada TTY1.&lt;br /&gt;
&lt;br /&gt;
Buat berkas service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/system/cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Masukkan konfigurasi berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=CMATRIX Laptop Screen Saver&lt;br /&gt;
After=systemd-user-sessions.service&lt;br /&gt;
Conflicts=getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 2&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=2&lt;br /&gt;
&lt;br /&gt;
StandardInput=tty&lt;br /&gt;
StandardOutput=tty&lt;br /&gt;
StandardError=tty&lt;br /&gt;
&lt;br /&gt;
TTYPath=/dev/tty1&lt;br /&gt;
TTYReset=yes&lt;br /&gt;
TTYVHangup=yes&lt;br /&gt;
TTYVTDisallocate=yes&lt;br /&gt;
&lt;br /&gt;
TTYMode=0600&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simpan berkas tersebut.&lt;br /&gt;
&lt;br /&gt;
Jika menggunakan editor [[nano]], tekan:&lt;br /&gt;
&lt;br /&gt;
Ctrl + O&lt;br /&gt;
Enter&lt;br /&gt;
Ctrl + X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Memuat Konfigurasi systemd ==&lt;br /&gt;
&lt;br /&gt;
Setelah service dibuat, muat ulang konfigurasi systemd:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mengaktifkan CMatrix secara Otomatis ==&lt;br /&gt;
&lt;br /&gt;
Agar CMatrix otomatis dijalankan setiap kali Ubuntu melakukan boot, aktifkan service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Periksa apakah service telah diaktifkan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl is-enabled cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
 enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Menjalankan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Jalankan service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kemudian periksa statusnya:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika berhasil, akan terlihat status:&lt;br /&gt;
&lt;br /&gt;
 Active: active (running)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pada tahap ini, lihat layar fisik laptop.&lt;br /&gt;
&lt;br /&gt;
Untuk berpindah ke TTY1 secara langsung dari laptop, gunakan:&lt;br /&gt;
&lt;br /&gt;
 Ctrl + Alt + F1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Layar laptop seharusnya menampilkan animasi CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Mengatur Tampilan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Konfigurasi service menggunakan perintah:&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/cmatrix -b -u 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameter CMatrix dapat disesuaikan dengan kebutuhan.&lt;br /&gt;
&lt;br /&gt;
Contoh konfigurasi menggunakan warna hijau dan kecepatan lebih tinggi:&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/cmatrix -b -u 1 -C green&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beberapa parameter yang dapat digunakan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;&lt;br /&gt;
| Menggunakan karakter tebal.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u 1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mengatur pembaruan animasi dengan interval lebih cepat.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u 2&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mengatur pembaruan animasi dengan kecepatan sedang.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-C green&amp;lt;/code&amp;gt;&lt;br /&gt;
| Menggunakan warna hijau.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi diubah, jalankan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl restart cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mengontrol CMatrix melalui SSH ==&lt;br /&gt;
&lt;br /&gt;
Salah satu keuntungan menggunakan systemd adalah CMatrix dapat dikendalikan dari komputer lain melalui SSH.&lt;br /&gt;
&lt;br /&gt;
Hubungkan ke server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh user@IP-UBUNTU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menjalankan CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menghentikan CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl stop cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Me-restart CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Melihat status ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Melihat log ===&lt;br /&gt;
&lt;br /&gt;
Log service dapat dilihat secara langsung menggunakan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo journalctl -u cmatrix-screensaver -f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dengan demikian, administrator tidak perlu berada di depan laptop untuk mengendalikan tampilan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Pengujian Setelah Reboot ==&lt;br /&gt;
&lt;br /&gt;
Untuk memastikan CMatrix benar-benar berjalan secara otomatis setelah sistem melakukan boot, lakukan reboot:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tunggu hingga Ubuntu selesai melakukan proses boot.&lt;br /&gt;
&lt;br /&gt;
Setelah sistem aktif kembali, periksa layar laptop. Jika konfigurasi berhasil, TTY1 akan menjalankan CMatrix secara otomatis tanpa perlu menjalankan perintah secara manual.&lt;br /&gt;
&lt;br /&gt;
Status service juga dapat diperiksa melalui SSH:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh user@IP-UBUNTU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl is-enabled cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
 enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Periksa status service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Status yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
 Active: active (running)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Berpindah dari CMatrix ke Terminal ==&lt;br /&gt;
&lt;br /&gt;
Karena CMatrix berjalan pada TTY1, terminal virtual lainnya tetap dapat digunakan.&lt;br /&gt;
&lt;br /&gt;
Contohnya:&lt;br /&gt;
&lt;br /&gt;
 Ctrl + Alt + F2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
atau:&lt;br /&gt;
&lt;br /&gt;
 Ctrl + Alt + F3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Konfigurasi terminal dapat digambarkan sebagai berikut:&lt;br /&gt;
&lt;br /&gt;
 TTY1 → CMatrix&lt;br /&gt;
 TTY2 → Terminal&lt;br /&gt;
 TTY3 → Terminal&lt;br /&gt;
 TTY4 → Terminal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Akses SSH juga tetap dapat digunakan seperti biasa.&lt;br /&gt;
&lt;br /&gt;
== Menghentikan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Jika ingin menghentikan CMatrix:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl stop cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika ingin mengembalikan TTY1 menjadi terminal login biasa, aktifkan kembali layanan &#039;&#039;getty&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable --now getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika ingin menggunakan CMatrix kembali, hentikan &#039;&#039;getty&#039;&#039; dan jalankan CMatrix:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl disable --now getty@tty1.service&lt;br /&gt;
 sudo systemctl start cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cara Kerja Sistem ==&lt;br /&gt;
&lt;br /&gt;
Konfigurasi ini menggunakan tiga komponen utama.&lt;br /&gt;
&lt;br /&gt;
=== CMatrix ===&lt;br /&gt;
&lt;br /&gt;
CMatrix merupakan program yang menghasilkan animasi karakter bergaya Matrix:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/cmatrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TTY1 ===&lt;br /&gt;
&lt;br /&gt;
TTY1 merupakan terminal virtual Linux yang digunakan sebagai media tampilan pada layar laptop:&lt;br /&gt;
&lt;br /&gt;
 /dev/tty1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== systemd ===&lt;br /&gt;
&lt;br /&gt;
systemd bertugas menjalankan dan mengelola service CMatrix:&lt;br /&gt;
&lt;br /&gt;
 cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hubungan ketiga komponen tersebut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
             systemd&lt;br /&gt;
                │&lt;br /&gt;
                │ start&lt;br /&gt;
                ▼&lt;br /&gt;
    cmatrix-screensaver.service&lt;br /&gt;
                │&lt;br /&gt;
                │ ExecStart&lt;br /&gt;
                ▼&lt;br /&gt;
             cmatrix&lt;br /&gt;
                │&lt;br /&gt;
                ▼&lt;br /&gt;
             /dev/tty1&lt;br /&gt;
                │&lt;br /&gt;
                ▼&lt;br /&gt;
         LAYAR LAPTOP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pemeriksaan Masalah ==&lt;br /&gt;
&lt;br /&gt;
Jika CMatrix tidak muncul pada layar laptop, beberapa pemeriksaan dapat dilakukan.&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa lokasi CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
which cmatrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa TTY1 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ls -l /dev/tty1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa service ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa log service ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo journalctl -u cmatrix-screensaver --no-pager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa konfigurasi autostart ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl is-enabled cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
 enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hasil Akhir ==&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi selesai, laptop Ubuntu dapat digunakan sebagai server sekaligus layar informasi dengan efek Matrix.&lt;br /&gt;
&lt;br /&gt;
┌─────────────────────────────────────────┐&lt;br /&gt;
│                                         │&lt;br /&gt;
│     1 0 1 0 0 1 1 0 1 0 1 0           │&lt;br /&gt;
│       1 0 1 1 0 0 1 0 0 1              │&lt;br /&gt;
│   0 1 1 0 1 0 1 1 0 1 0 0 1            │&lt;br /&gt;
│      1 0 0 1 1 0 0 1 0 1               │&lt;br /&gt;
│                                         │&lt;br /&gt;
│              CMATRIX                    │&lt;br /&gt;
│                                         │&lt;br /&gt;
└─────────────────────────────────────────┘&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ubuntu tetap berfungsi sebagai server, SSH tetap dapat digunakan, sedangkan layar fisik laptop digunakan untuk menampilkan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Lihat juga ==&lt;br /&gt;
&lt;br /&gt;
* [[Ubuntu]]&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[systemd]]&lt;br /&gt;
* [[Secure Shell]]&lt;br /&gt;
* [[Terminal emulator]]&lt;br /&gt;
* [[TTY]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Ubuntu]]&lt;br /&gt;
[[Kategori:Linux]]&lt;br /&gt;
[[Kategori:Administrasi sistem]]&lt;br /&gt;
[[Kategori:Tutorial komputer]]&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_cmatrix_sebagai_screensaver_server_ubuntu&amp;diff=443</id>
		<title>Install cmatrix sebagai screensaver server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_cmatrix_sebagai_screensaver_server_ubuntu&amp;diff=443"/>
		<updated>2026-09-14T08:21:53Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= CMatrix sebagai Screen Saver pada Ubuntu Server =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CMatrix&#039;&#039;&#039; adalah program terminal yang menampilkan efek karakter menyerupai tampilan komputer pada film &#039;&#039;The Matrix&#039;&#039;. Pada [[Ubuntu Server]], CMatrix dapat digunakan sebagai tampilan layar penuh pada [[TTY]] sehingga layar fisik laptop yang digunakan sebagai server dapat menampilkan animasi CMatrix tanpa memerlukan lingkungan desktop seperti GNOME, KDE, atau X11.&lt;br /&gt;
&lt;br /&gt;
Tutorial ini menjelaskan cara menjalankan CMatrix secara otomatis pada &#039;&#039;&#039;TTY1&#039;&#039;&#039; menggunakan [[systemd]]. Dengan konfigurasi ini, CMatrix akan ditampilkan langsung pada layar laptop dan tetap dapat dikendalikan dari komputer lain melalui [[SSH]].&lt;br /&gt;
&lt;br /&gt;
== Tujuan ==&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi selesai, sistem akan bekerja dengan alur berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ubuntu Server melakukan boot&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
        TTY1&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
      CMATRIX&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
   Layar laptop server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Administrator tetap dapat mengakses server melalui SSH:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Komputer lain&lt;br /&gt;
      │&lt;br /&gt;
      │ SSH&lt;br /&gt;
      ▼&lt;br /&gt;
Ubuntu Server&lt;br /&gt;
      │&lt;br /&gt;
      ├── systemctl start cmatrix-screensaver&lt;br /&gt;
      ├── systemctl stop cmatrix-screensaver&lt;br /&gt;
      ├── systemctl restart cmatrix-screensaver&lt;br /&gt;
      └── systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fitur ===&lt;br /&gt;
&lt;br /&gt;
* CMatrix tampil langsung pada layar laptop.&lt;br /&gt;
* Tidak membutuhkan desktop GUI atau X11.&lt;br /&gt;
* Otomatis aktif setelah Ubuntu melakukan boot.&lt;br /&gt;
* Tetap dapat dikendalikan melalui SSH.&lt;br /&gt;
* Dapat dihentikan, dijalankan, dan di-restart menggunakan &#039;&#039;systemctl&#039;&#039;.&lt;br /&gt;
* Cocok untuk laptop yang digunakan sebagai server.&lt;br /&gt;
* TTY1 digunakan secara khusus untuk tampilan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Persyaratan ==&lt;br /&gt;
&lt;br /&gt;
Tutorial ini ditujukan untuk komputer dengan:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Server.&lt;br /&gt;
* Akses pengguna dengan hak &#039;&#039;sudo&#039;&#039;.&lt;br /&gt;
* Program CMatrix sudah terpasang.&lt;br /&gt;
* Layar laptop terhubung secara langsung ke server.&lt;br /&gt;
* Akses SSH dari komputer lain jika administrasi dilakukan secara jarak jauh.&lt;br /&gt;
&lt;br /&gt;
Jika CMatrix belum terpasang, jalankan:&lt;br /&gt;
&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install cmatrix -y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verifikasi instalasi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 which cmatrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang umum adalah:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/cmatrix&lt;br /&gt;
&lt;br /&gt;
== Memeriksa TTY1 ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu menyediakan beberapa terminal virtual yang disebut [[TTY]]. Terminal virtual pertama biasanya tersedia sebagai:&lt;br /&gt;
&lt;br /&gt;
/dev/tty1&lt;br /&gt;
&lt;br /&gt;
Periksa keberadaan TTY1 dengan perintah:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ls -l /dev/tty1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika tersedia, sistem akan menampilkan perangkat terminal yang mengarah ke &#039;&#039;/dev/tty1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TTY1 akan digunakan sebagai layar khusus untuk CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Menonaktifkan Getty pada TTY1 ==&lt;br /&gt;
&lt;br /&gt;
Secara default, Ubuntu menjalankan layanan &#039;&#039;getty&#039;&#039; pada TTY1 untuk menyediakan layar login terminal.&lt;br /&gt;
&lt;br /&gt;
Karena TTY1 akan digunakan oleh CMatrix, layanan tersebut perlu dihentikan dan dinonaktifkan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl disable --now getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Perintah tersebut membuat TTY1 tidak lagi digunakan sebagai terminal login biasa.&lt;br /&gt;
&lt;br /&gt;
{{Note|Setelah konfigurasi ini diterapkan, TTY1 digunakan untuk menjalankan CMatrix. Terminal virtual lain seperti TTY2 dan TTY3 tetap dapat digunakan untuk administrasi lokal.}}&lt;br /&gt;
&lt;br /&gt;
== Membuat systemd Service ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu menggunakan [[systemd]] sebagai sistem dan pengelola layanan. Sebuah service khusus akan dibuat untuk menjalankan CMatrix pada TTY1.&lt;br /&gt;
&lt;br /&gt;
Buat berkas service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo nano /etc/systemd/system/cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Masukkan konfigurasi berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=CMATRIX Laptop Screen Saver&lt;br /&gt;
After=systemd-user-sessions.service&lt;br /&gt;
Conflicts=getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 2&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=2&lt;br /&gt;
&lt;br /&gt;
StandardInput=tty&lt;br /&gt;
StandardOutput=tty&lt;br /&gt;
StandardError=tty&lt;br /&gt;
&lt;br /&gt;
TTYPath=/dev/tty1&lt;br /&gt;
TTYReset=yes&lt;br /&gt;
TTYVHangup=yes&lt;br /&gt;
TTYVTDisallocate=yes&lt;br /&gt;
&lt;br /&gt;
TTYMode=0600&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simpan berkas tersebut.&lt;br /&gt;
&lt;br /&gt;
Jika menggunakan editor [[nano]], tekan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + O&lt;br /&gt;
Enter&lt;br /&gt;
Ctrl + X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Memuat Konfigurasi systemd ==&lt;br /&gt;
&lt;br /&gt;
Setelah service dibuat, muat ulang konfigurasi systemd:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mengaktifkan CMatrix secara Otomatis ==&lt;br /&gt;
&lt;br /&gt;
Agar CMatrix otomatis dijalankan setiap kali Ubuntu melakukan boot, aktifkan service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Periksa apakah service telah diaktifkan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
systemctl is-enabled cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Menjalankan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Jalankan service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl start cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kemudian periksa statusnya:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika berhasil, akan terlihat status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Active: active (running)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pada tahap ini, lihat layar fisik laptop.&lt;br /&gt;
&lt;br /&gt;
Untuk berpindah ke TTY1 secara langsung dari laptop, gunakan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + Alt + F1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Layar laptop seharusnya menampilkan animasi CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Mengatur Tampilan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Konfigurasi service menggunakan perintah:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameter CMatrix dapat disesuaikan dengan kebutuhan.&lt;br /&gt;
&lt;br /&gt;
Contoh konfigurasi menggunakan warna hijau dan kecepatan lebih tinggi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 1 -C green&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beberapa parameter yang dapat digunakan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;&lt;br /&gt;
| Menggunakan karakter tebal.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u 1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mengatur pembaruan animasi dengan interval lebih cepat.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u 2&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mengatur pembaruan animasi dengan kecepatan sedang.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-C green&amp;lt;/code&amp;gt;&lt;br /&gt;
| Menggunakan warna hijau.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi diubah, jalankan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl restart cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mengontrol CMatrix melalui SSH ==&lt;br /&gt;
&lt;br /&gt;
Salah satu keuntungan menggunakan systemd adalah CMatrix dapat dikendalikan dari komputer lain melalui SSH.&lt;br /&gt;
&lt;br /&gt;
Hubungkan ke server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ssh user@IP-UBUNTU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menjalankan CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl start cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menghentikan CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl stop cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Me-restart CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Melihat status ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Melihat log ===&lt;br /&gt;
&lt;br /&gt;
Log service dapat dilihat secara langsung menggunakan:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo journalctl -u cmatrix-screensaver -f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dengan demikian, administrator tidak perlu berada di depan laptop untuk mengendalikan tampilan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Pengujian Setelah Reboot ==&lt;br /&gt;
&lt;br /&gt;
Untuk memastikan CMatrix benar-benar berjalan secara otomatis setelah sistem melakukan boot, lakukan reboot:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo reboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tunggu hingga Ubuntu selesai melakukan proses boot.&lt;br /&gt;
&lt;br /&gt;
Setelah sistem aktif kembali, periksa layar laptop. Jika konfigurasi berhasil, TTY1 akan menjalankan CMatrix secara otomatis tanpa perlu menjalankan perintah secara manual.&lt;br /&gt;
&lt;br /&gt;
Status service juga dapat diperiksa melalui SSH:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ssh user@IP-UBUNTU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
systemctl is-enabled cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Periksa status service:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Status yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Active: active (running)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Berpindah dari CMatrix ke Terminal ==&lt;br /&gt;
&lt;br /&gt;
Karena CMatrix berjalan pada TTY1, terminal virtual lainnya tetap dapat digunakan.&lt;br /&gt;
&lt;br /&gt;
Contohnya:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + Alt + F2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
atau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + Alt + F3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Konfigurasi terminal dapat digambarkan sebagai berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
TTY1 → CMatrix&lt;br /&gt;
TTY2 → Terminal&lt;br /&gt;
TTY3 → Terminal&lt;br /&gt;
TTY4 → Terminal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Akses SSH juga tetap dapat digunakan seperti biasa.&lt;br /&gt;
&lt;br /&gt;
== Menghentikan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Jika ingin menghentikan CMatrix:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl stop cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika ingin mengembalikan TTY1 menjadi terminal login biasa, aktifkan kembali layanan &#039;&#039;getty&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable --now getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jika ingin menggunakan CMatrix kembali, hentikan &#039;&#039;getty&#039;&#039; dan jalankan CMatrix:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl disable --now getty@tty1.service&lt;br /&gt;
sudo systemctl start cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cara Kerja Sistem ==&lt;br /&gt;
&lt;br /&gt;
Konfigurasi ini menggunakan tiga komponen utama.&lt;br /&gt;
&lt;br /&gt;
=== CMatrix ===&lt;br /&gt;
&lt;br /&gt;
CMatrix merupakan program yang menghasilkan animasi karakter bergaya Matrix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/cmatrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TTY1 ===&lt;br /&gt;
&lt;br /&gt;
TTY1 merupakan terminal virtual Linux yang digunakan sebagai media tampilan pada layar laptop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/dev/tty1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== systemd ===&lt;br /&gt;
&lt;br /&gt;
systemd bertugas menjalankan dan mengelola service CMatrix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cmatrix-screensaver.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hubungan ketiga komponen tersebut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
             systemd&lt;br /&gt;
                │&lt;br /&gt;
                │ start&lt;br /&gt;
                ▼&lt;br /&gt;
    cmatrix-screensaver.service&lt;br /&gt;
                │&lt;br /&gt;
                │ ExecStart&lt;br /&gt;
                ▼&lt;br /&gt;
             cmatrix&lt;br /&gt;
                │&lt;br /&gt;
                ▼&lt;br /&gt;
             /dev/tty1&lt;br /&gt;
                │&lt;br /&gt;
                ▼&lt;br /&gt;
         LAYAR LAPTOP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pemeriksaan Masalah ==&lt;br /&gt;
&lt;br /&gt;
Jika CMatrix tidak muncul pada layar laptop, beberapa pemeriksaan dapat dilakukan.&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa lokasi CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
which cmatrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa TTY1 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ls -l /dev/tty1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa service ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa log service ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo journalctl -u cmatrix-screensaver --no-pager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa konfigurasi autostart ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
systemctl is-enabled cmatrix-screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hasil Akhir ==&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi selesai, laptop Ubuntu dapat digunakan sebagai server sekaligus layar informasi dengan efek Matrix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
┌─────────────────────────────────────────┐&lt;br /&gt;
│                                         │&lt;br /&gt;
│     1 0 1 0 0 1 1 0 1 0 1 0           │&lt;br /&gt;
│       1 0 1 1 0 0 1 0 0 1              │&lt;br /&gt;
│   0 1 1 0 1 0 1 1 0 1 0 0 1            │&lt;br /&gt;
│      1 0 0 1 1 0 0 1 0 1               │&lt;br /&gt;
│                                         │&lt;br /&gt;
│              CMATRIX                    │&lt;br /&gt;
│                                         │&lt;br /&gt;
└─────────────────────────────────────────┘&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ubuntu tetap berfungsi sebagai server, SSH tetap dapat digunakan, sedangkan layar fisik laptop digunakan untuk menampilkan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Lihat juga ==&lt;br /&gt;
&lt;br /&gt;
* [[Ubuntu]]&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[systemd]]&lt;br /&gt;
* [[Secure Shell]]&lt;br /&gt;
* [[Terminal emulator]]&lt;br /&gt;
* [[TTY]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Ubuntu]]&lt;br /&gt;
[[Kategori:Linux]]&lt;br /&gt;
[[Kategori:Administrasi sistem]]&lt;br /&gt;
[[Kategori:Tutorial komputer]]&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_cmatrix_sebagai_screensaver_server_ubuntu&amp;diff=442</id>
		<title>Install cmatrix sebagai screensaver server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_cmatrix_sebagai_screensaver_server_ubuntu&amp;diff=442"/>
		<updated>2026-09-14T08:18:09Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot;= CMatrix sebagai Screen Saver pada Ubuntu Server =  &amp;#039;&amp;#039;&amp;#039;CMatrix&amp;#039;&amp;#039;&amp;#039; adalah program terminal yang menampilkan efek karakter menyerupai tampilan komputer pada film &amp;#039;&amp;#039;The Matrix&amp;#039;&amp;#039;. Pada Ubuntu Server, CMatrix dapat digunakan sebagai tampilan layar penuh pada TTY sehingga layar fisik laptop yang digunakan sebagai server dapat menampilkan animasi CMatrix tanpa memerlukan lingkungan desktop seperti GNOME, KDE, atau X11.  Tutorial ini menjelaskan cara menjalankan CMatrix...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= CMatrix sebagai Screen Saver pada Ubuntu Server =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CMatrix&#039;&#039;&#039; adalah program terminal yang menampilkan efek karakter menyerupai tampilan komputer pada film &#039;&#039;The Matrix&#039;&#039;. Pada [[Ubuntu Server]], CMatrix dapat digunakan sebagai tampilan layar penuh pada [[TTY]] sehingga layar fisik laptop yang digunakan sebagai server dapat menampilkan animasi CMatrix tanpa memerlukan lingkungan desktop seperti GNOME, KDE, atau X11.&lt;br /&gt;
&lt;br /&gt;
Tutorial ini menjelaskan cara menjalankan CMatrix secara otomatis pada &#039;&#039;&#039;TTY1&#039;&#039;&#039; menggunakan [[systemd]]. Dengan konfigurasi ini, CMatrix akan ditampilkan langsung pada layar laptop dan tetap dapat dikendalikan dari komputer lain melalui [[SSH]].&lt;br /&gt;
&lt;br /&gt;
== Tujuan ==&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi selesai, sistem akan bekerja dengan alur berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ubuntu Server melakukan boot&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
        TTY1&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
      CMATRIX&lt;br /&gt;
          │&lt;br /&gt;
          ▼&lt;br /&gt;
   Layar laptop server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Administrator tetap dapat mengakses server melalui SSH:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Komputer lain&lt;br /&gt;
      │&lt;br /&gt;
      │ SSH&lt;br /&gt;
      ▼&lt;br /&gt;
Ubuntu Server&lt;br /&gt;
      │&lt;br /&gt;
      ├── systemctl start cmatrix-screensaver&lt;br /&gt;
      ├── systemctl stop cmatrix-screensaver&lt;br /&gt;
      ├── systemctl restart cmatrix-screensaver&lt;br /&gt;
      └── systemctl status cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fitur ===&lt;br /&gt;
&lt;br /&gt;
* CMatrix tampil langsung pada layar laptop.&lt;br /&gt;
* Tidak membutuhkan desktop GUI atau X11.&lt;br /&gt;
* Otomatis aktif setelah Ubuntu melakukan boot.&lt;br /&gt;
* Tetap dapat dikendalikan melalui SSH.&lt;br /&gt;
* Dapat dihentikan, dijalankan, dan di-restart menggunakan &#039;&#039;systemctl&#039;&#039;.&lt;br /&gt;
* Cocok untuk laptop yang digunakan sebagai server.&lt;br /&gt;
* TTY1 digunakan secara khusus untuk tampilan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Persyaratan ==&lt;br /&gt;
&lt;br /&gt;
Tutorial ini ditujukan untuk komputer dengan:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Server.&lt;br /&gt;
* Akses pengguna dengan hak &#039;&#039;sudo&#039;&#039;.&lt;br /&gt;
* Program CMatrix sudah terpasang.&lt;br /&gt;
* Layar laptop terhubung secara langsung ke server.&lt;br /&gt;
* Akses SSH dari komputer lain jika administrasi dilakukan secara jarak jauh.&lt;br /&gt;
&lt;br /&gt;
Jika CMatrix belum terpasang, jalankan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install cmatrix -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verifikasi instalasi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which cmatrix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil yang umum adalah:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/cmatrix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Memeriksa TTY1 ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu menyediakan beberapa terminal virtual yang disebut [[TTY]]. Terminal virtual pertama biasanya tersedia sebagai:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/dev/tty1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Periksa keberadaan TTY1 dengan perintah:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /dev/tty1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jika tersedia, sistem akan menampilkan perangkat terminal yang mengarah ke &#039;&#039;/dev/tty1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TTY1 akan digunakan sebagai layar khusus untuk CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Menonaktifkan Getty pada TTY1 ==&lt;br /&gt;
&lt;br /&gt;
Secara default, Ubuntu menjalankan layanan &#039;&#039;getty&#039;&#039; pada TTY1 untuk menyediakan layar login terminal.&lt;br /&gt;
&lt;br /&gt;
Karena TTY1 akan digunakan oleh CMatrix, layanan tersebut perlu dihentikan dan dinonaktifkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl disable --now getty@tty1.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perintah tersebut membuat TTY1 tidak lagi digunakan sebagai terminal login biasa.&lt;br /&gt;
&lt;br /&gt;
{{Note|Setelah konfigurasi ini diterapkan, TTY1 digunakan untuk menjalankan CMatrix. Terminal virtual lain seperti TTY2 dan TTY3 tetap dapat digunakan untuk administrasi lokal.}}&lt;br /&gt;
&lt;br /&gt;
== Membuat systemd Service ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu menggunakan [[systemd]] sebagai sistem dan pengelola layanan. Sebuah service khusus akan dibuat untuk menjalankan CMatrix pada TTY1.&lt;br /&gt;
&lt;br /&gt;
Buat berkas service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Masukkan konfigurasi berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=CMATRIX Laptop Screen Saver&lt;br /&gt;
After=systemd-user-sessions.service&lt;br /&gt;
Conflicts=getty@tty1.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 2&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=2&lt;br /&gt;
&lt;br /&gt;
StandardInput=tty&lt;br /&gt;
StandardOutput=tty&lt;br /&gt;
StandardError=tty&lt;br /&gt;
&lt;br /&gt;
TTYPath=/dev/tty1&lt;br /&gt;
TTYReset=yes&lt;br /&gt;
TTYVHangup=yes&lt;br /&gt;
TTYVTDisallocate=yes&lt;br /&gt;
&lt;br /&gt;
TTYMode=0600&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simpan berkas tersebut.&lt;br /&gt;
&lt;br /&gt;
Jika menggunakan editor [[nano]], tekan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + O&lt;br /&gt;
Enter&lt;br /&gt;
Ctrl + X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Memuat Konfigurasi systemd ==&lt;br /&gt;
&lt;br /&gt;
Setelah service dibuat, muat ulang konfigurasi systemd:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mengaktifkan CMatrix secara Otomatis ==&lt;br /&gt;
&lt;br /&gt;
Agar CMatrix otomatis dijalankan setiap kali Ubuntu melakukan boot, aktifkan service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl enable cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Periksa apakah service telah diaktifkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-enabled cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Menjalankan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Jalankan service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl start cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kemudian periksa statusnya:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl status cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jika berhasil, akan terlihat status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Active: active (running)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pada tahap ini, lihat layar fisik laptop.&lt;br /&gt;
&lt;br /&gt;
Untuk berpindah ke TTY1 secara langsung dari laptop, gunakan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + Alt + F1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layar laptop seharusnya menampilkan animasi CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Mengatur Tampilan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Konfigurasi service menggunakan perintah:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameter CMatrix dapat disesuaikan dengan kebutuhan.&lt;br /&gt;
&lt;br /&gt;
Contoh konfigurasi menggunakan warna hijau dan kecepatan lebih tinggi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
ExecStart=/usr/bin/cmatrix -b -u 1 -C green&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beberapa parameter yang dapat digunakan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;&lt;br /&gt;
| Menggunakan karakter tebal.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u 1&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mengatur pembaruan animasi dengan interval lebih cepat.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-u 2&amp;lt;/code&amp;gt;&lt;br /&gt;
| Mengatur pembaruan animasi dengan kecepatan sedang.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-C green&amp;lt;/code&amp;gt;&lt;br /&gt;
| Menggunakan warna hijau.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi diubah, jalankan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl restart cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mengontrol CMatrix melalui SSH ==&lt;br /&gt;
&lt;br /&gt;
Salah satu keuntungan menggunakan systemd adalah CMatrix dapat dikendalikan dari komputer lain melalui SSH.&lt;br /&gt;
&lt;br /&gt;
Hubungkan ke server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh user@IP-UBUNTU&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Menjalankan CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl start cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Menghentikan CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl stop cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Me-restart CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Melihat status ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Melihat log ===&lt;br /&gt;
&lt;br /&gt;
Log service dapat dilihat secara langsung menggunakan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo journalctl -u cmatrix-screensaver -f&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dengan demikian, administrator tidak perlu berada di depan laptop untuk mengendalikan tampilan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Pengujian Setelah Reboot ==&lt;br /&gt;
&lt;br /&gt;
Untuk memastikan CMatrix benar-benar berjalan secara otomatis setelah sistem melakukan boot, lakukan reboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tunggu hingga Ubuntu selesai melakukan proses boot.&lt;br /&gt;
&lt;br /&gt;
Setelah sistem aktif kembali, periksa layar laptop. Jika konfigurasi berhasil, TTY1 akan menjalankan CMatrix secara otomatis tanpa perlu menjalankan perintah secara manual.&lt;br /&gt;
&lt;br /&gt;
Status service juga dapat diperiksa melalui SSH:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh user@IP-UBUNTU&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-enabled cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Periksa status service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Active: active (running)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Berpindah dari CMatrix ke Terminal ==&lt;br /&gt;
&lt;br /&gt;
Karena CMatrix berjalan pada TTY1, terminal virtual lainnya tetap dapat digunakan.&lt;br /&gt;
&lt;br /&gt;
Contohnya:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + Alt + F2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
atau:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ctrl + Alt + F3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfigurasi terminal dapat digambarkan sebagai berikut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
TTY1 → CMatrix&lt;br /&gt;
TTY2 → Terminal&lt;br /&gt;
TTY3 → Terminal&lt;br /&gt;
TTY4 → Terminal&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Akses SSH juga tetap dapat digunakan seperti biasa.&lt;br /&gt;
&lt;br /&gt;
== Menghentikan CMatrix ==&lt;br /&gt;
&lt;br /&gt;
Jika ingin menghentikan CMatrix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl stop cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jika ingin mengembalikan TTY1 menjadi terminal login biasa, aktifkan kembali layanan &#039;&#039;getty&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl enable --now getty@tty1.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jika ingin menggunakan CMatrix kembali, hentikan &#039;&#039;getty&#039;&#039; dan jalankan CMatrix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl disable --now getty@tty1.service&lt;br /&gt;
sudo systemctl start cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cara Kerja Sistem ==&lt;br /&gt;
&lt;br /&gt;
Konfigurasi ini menggunakan tiga komponen utama.&lt;br /&gt;
&lt;br /&gt;
=== CMatrix ===&lt;br /&gt;
&lt;br /&gt;
CMatrix merupakan program yang menghasilkan animasi karakter bergaya Matrix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/cmatrix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TTY1 ===&lt;br /&gt;
&lt;br /&gt;
TTY1 merupakan terminal virtual Linux yang digunakan sebagai media tampilan pada layar laptop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/dev/tty1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== systemd ===&lt;br /&gt;
&lt;br /&gt;
systemd bertugas menjalankan dan mengelola service CMatrix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cmatrix-screensaver.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hubungan ketiga komponen tersebut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
             systemd&lt;br /&gt;
                │&lt;br /&gt;
                │ start&lt;br /&gt;
                ▼&lt;br /&gt;
    cmatrix-screensaver.service&lt;br /&gt;
                │&lt;br /&gt;
                │ ExecStart&lt;br /&gt;
                ▼&lt;br /&gt;
             cmatrix&lt;br /&gt;
                │&lt;br /&gt;
                ▼&lt;br /&gt;
             /dev/tty1&lt;br /&gt;
                │&lt;br /&gt;
                ▼&lt;br /&gt;
         LAYAR LAPTOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pemeriksaan Masalah ==&lt;br /&gt;
&lt;br /&gt;
Jika CMatrix tidak muncul pada layar laptop, beberapa pemeriksaan dapat dilakukan.&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa lokasi CMatrix ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
which cmatrix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa TTY1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /dev/tty1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa service ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl status cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa log service ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo journalctl -u cmatrix-screensaver --no-pager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Memeriksa konfigurasi autostart ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-enabled cmatrix-screensaver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil yang diharapkan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hasil Akhir ==&lt;br /&gt;
&lt;br /&gt;
Setelah konfigurasi selesai, laptop Ubuntu dapat digunakan sebagai server sekaligus layar informasi dengan efek Matrix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
┌─────────────────────────────────────────┐&lt;br /&gt;
│                                         │&lt;br /&gt;
│     1 0 1 0 0 1 1 0 1 0 1 0           │&lt;br /&gt;
│       1 0 1 1 0 0 1 0 0 1              │&lt;br /&gt;
│   0 1 1 0 1 0 1 1 0 1 0 0 1            │&lt;br /&gt;
│      1 0 0 1 1 0 0 1 0 1               │&lt;br /&gt;
│                                         │&lt;br /&gt;
│              CMATRIX                    │&lt;br /&gt;
│                                         │&lt;br /&gt;
└─────────────────────────────────────────┘&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ubuntu tetap berfungsi sebagai server, SSH tetap dapat digunakan, sedangkan layar fisik laptop digunakan untuk menampilkan CMatrix.&lt;br /&gt;
&lt;br /&gt;
== Lihat juga ==&lt;br /&gt;
&lt;br /&gt;
* [[Ubuntu]]&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[systemd]]&lt;br /&gt;
* [[Secure Shell]]&lt;br /&gt;
* [[Terminal emulator]]&lt;br /&gt;
* [[TTY]]&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Ubuntu]]&lt;br /&gt;
[[Kategori:Linux]]&lt;br /&gt;
[[Kategori:Administrasi sistem]]&lt;br /&gt;
[[Kategori:Tutorial komputer]]&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=441</id>
		<title>Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=441"/>
		<updated>2026-09-11T17:09:03Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
This guide describes the installation of &#039;&#039;&#039;Asterisk&#039;&#039;&#039; and &#039;&#039;&#039;FreePBX&#039;&#039;&#039; on &#039;&#039;&#039;Ubuntu 22.04 LTS&#039;&#039;&#039;. The procedure includes system preparation, dependency installation, Asterisk compilation and configuration, PHP and web-server configuration, and installation of FreePBX.&lt;br /&gt;
&lt;br /&gt;
A custom installation of FreePBX may differ from a pre-built FreePBX distribution. In particular, some modules or administrative components that are normally included or configured in a complete FreePBX distribution may not be present after a manual installation.&lt;br /&gt;
&lt;br /&gt;
One such component is the &#039;&#039;&#039;Admin Module&#039;&#039;&#039;. The Admin Module provides a web-based interface for managing various aspects of a FreePBX system, including users, permissions, system settings, and module administration.&lt;br /&gt;
&lt;br /&gt;
If the Admin Module is unavailable after a custom installation, it may need to be installed separately. Administrative operations can also be performed through the FreePBX command-line interface (CLI) or by modifying configuration files directly. Consequently, some functionality normally available through the FreePBX web interface may require additional configuration when FreePBX is installed manually.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
The procedure assumes the following:&lt;br /&gt;
&lt;br /&gt;
·        A fresh installation of Ubuntu 22.04 LTS.&lt;br /&gt;
&lt;br /&gt;
·        Root or sudo access to the server.&lt;br /&gt;
&lt;br /&gt;
·        Internet connectivity for downloading packages and source code.&lt;br /&gt;
&lt;br /&gt;
·        A server with sufficient resources to compile and run Asterisk and FreePBX.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Update the system ==&lt;br /&gt;
The system should first be updated so that installed packages are current.&lt;br /&gt;
&lt;br /&gt;
apt-get update -y&lt;br /&gt;
&lt;br /&gt;
apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set the hostname ==&lt;br /&gt;
Set the hostname of the server to freepbx:&lt;br /&gt;
&lt;br /&gt;
hostnamectl set-hostname freepbx&lt;br /&gt;
&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
Add the appropriate IP address, hostname, and DNS or domain name entries to /etc/hosts.&lt;br /&gt;
&lt;br /&gt;
The exact entries depend on the network configuration of the server.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Configure swap space ==&lt;br /&gt;
Swap space can be configured to provide additional virtual memory and help prevent memory exhaustion during software compilation and operation.&lt;br /&gt;
&lt;br /&gt;
First, check the current swap, memory, and disk configuration:&lt;br /&gt;
&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&lt;br /&gt;
free -h&lt;br /&gt;
&lt;br /&gt;
df -h&lt;br /&gt;
&lt;br /&gt;
Create a 2 GB swap file:&lt;br /&gt;
&lt;br /&gt;
sudo fallocate -l 2G /swapfile&lt;br /&gt;
&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
&lt;br /&gt;
Set the appropriate permissions:&lt;br /&gt;
&lt;br /&gt;
sudo chmod 600 /swapfile&lt;br /&gt;
&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
&lt;br /&gt;
Initialize and enable the swap file:&lt;br /&gt;
&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&lt;br /&gt;
free -h&lt;br /&gt;
&lt;br /&gt;
Back up the existing /etc/fstab file:&lt;br /&gt;
&lt;br /&gt;
sudo cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
&lt;br /&gt;
Add the swap file to /etc/fstab so that it is automatically enabled after a reboot:&lt;br /&gt;
&lt;br /&gt;
echo &#039;/swapfile none swap sw 0 0&#039; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
The Linux virtual-memory parameters can be adjusted in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
sudo nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
Add the following values:&lt;br /&gt;
&lt;br /&gt;
vm.swappiness=10&lt;br /&gt;
&lt;br /&gt;
vm.vfs_cache_pressure=50&lt;br /&gt;
&lt;br /&gt;
The resulting configuration can be inspected with:&lt;br /&gt;
&lt;br /&gt;
cat /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
== Step 4: Reboot the system ==&lt;br /&gt;
Reboot the server to apply the system configuration changes:&lt;br /&gt;
&lt;br /&gt;
reboot&lt;br /&gt;
&lt;br /&gt;
== Step 5: Install Asterisk ==&lt;br /&gt;
Install the packages required to compile Asterisk and provide several of its optional components:&lt;br /&gt;
&lt;br /&gt;
apt-get install unzip git sox gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev libedit-dev uuid-dev subversion -y&lt;br /&gt;
&lt;br /&gt;
Download the current Asterisk 20 source archive:&lt;br /&gt;
&lt;br /&gt;
wget &amp;lt;nowiki&amp;gt;http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
&lt;br /&gt;
Change to the extracted Asterisk source directory:&lt;br /&gt;
&lt;br /&gt;
cd asterisk-20.*&lt;br /&gt;
&lt;br /&gt;
Download the MP3 source required for MP3 support:&lt;br /&gt;
&lt;br /&gt;
contrib/scripts/get_mp3_source.sh&lt;br /&gt;
&lt;br /&gt;
Install the Asterisk prerequisite packages:&lt;br /&gt;
&lt;br /&gt;
contrib/scripts/install_prereq install&lt;br /&gt;
&lt;br /&gt;
Configure the Asterisk build:&lt;br /&gt;
&lt;br /&gt;
./configure&lt;br /&gt;
&lt;br /&gt;
Open the Asterisk module-selection interface:&lt;br /&gt;
&lt;br /&gt;
make menuselect&lt;br /&gt;
&lt;br /&gt;
Compile and install Asterisk:&lt;br /&gt;
&lt;br /&gt;
make -j2&lt;br /&gt;
&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
make samples&lt;br /&gt;
&lt;br /&gt;
make config&lt;br /&gt;
&lt;br /&gt;
ldconfig&lt;br /&gt;
&lt;br /&gt;
The -j2 option instructs make to use two parallel jobs during compilation. The number can be adjusted according to the available CPU resources.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Configure Asterisk ==&lt;br /&gt;
A dedicated system user and group are used to run Asterisk.&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk group:&lt;br /&gt;
&lt;br /&gt;
groupadd asterisk&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk system user:&lt;br /&gt;
&lt;br /&gt;
useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
&lt;br /&gt;
Add the Asterisk user to the audio and dialout groups:&lt;br /&gt;
&lt;br /&gt;
usermod -aG audio,dialout asterisk&lt;br /&gt;
&lt;br /&gt;
Change ownership of the Asterisk configuration, library, log, and spool directories:&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /etc/asterisk&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /usr/lib/asterisk&lt;br /&gt;
&lt;br /&gt;
Edit the Asterisk default configuration:&lt;br /&gt;
&lt;br /&gt;
nano /etc/default/asterisk&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Asterisk configuration file can also be used to specify the user and group under which the Asterisk process operates:&lt;br /&gt;
&lt;br /&gt;
nano /etc/asterisk/asterisk.conf&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
runuser = asterisk&lt;br /&gt;
&lt;br /&gt;
rungroup = asterisk&lt;br /&gt;
&lt;br /&gt;
Restart Asterisk and enable it to start automatically with the system:&lt;br /&gt;
&lt;br /&gt;
systemctl restart asterisk&lt;br /&gt;
&lt;br /&gt;
systemctl enable asterisk&lt;br /&gt;
&lt;br /&gt;
systemctl status asterisk&lt;br /&gt;
&lt;br /&gt;
=== Correct common configuration errors ===&lt;br /&gt;
The following commands modify the Asterisk CDR and CEL configuration files to correct common RADIUS-related configuration issues:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
&lt;br /&gt;
Start Asterisk and connect to its command-line interface:&lt;br /&gt;
&lt;br /&gt;
systemctl start asterisk&lt;br /&gt;
&lt;br /&gt;
asterisk -rvv&lt;br /&gt;
&lt;br /&gt;
After verifying the Asterisk CLI, leave it with:&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
== Step 7: Install FreePBX dependencies ==&lt;br /&gt;
FreePBX requires a web server, database server, PHP, and several PHP extensions.&lt;br /&gt;
&lt;br /&gt;
Install software-properties-common:&lt;br /&gt;
&lt;br /&gt;
apt install software-properties-common&lt;br /&gt;
&lt;br /&gt;
Add the Ondřej Surý PHP repository:&lt;br /&gt;
&lt;br /&gt;
add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
&lt;br /&gt;
Install Apache HTTP Server, MariaDB, PHP 7.4, and the required PHP extensions:&lt;br /&gt;
&lt;br /&gt;
apt install apache2 mariadb-server libapache2-mod-php7.4 php7.4 php-pear php7.4-cgi php7.4-common php7.4-curl php7.4-mbstring php7.4-gd php7.4-mysql php7.4-bcmath php7.4-zip php7.4-xml php7.4-imap php7.4-json php7.4-snmp -y&lt;br /&gt;
&lt;br /&gt;
=== Configure PHP 7.4 as the default PHP version ===&lt;br /&gt;
Disable the currently enabled Apache PHP modules:&lt;br /&gt;
&lt;br /&gt;
sudo a2dismod php*&lt;br /&gt;
&lt;br /&gt;
Enable the PHP 7.4 Apache module:&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod php7.4&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Set PHP 7.4 as the default command-line PHP version:&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set php /usr/bin/php7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phar /usr/bin/phar7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phpize /usr/bin/phpize7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set php-config /usr/bin/php-config7.4&lt;br /&gt;
&lt;br /&gt;
== Step 8: Download and install FreePBX ==&lt;br /&gt;
Download the latest FreePBX 16 release available from the specified FreePBX mirror:&lt;br /&gt;
&lt;br /&gt;
wget &amp;lt;nowiki&amp;gt;http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
tar -xvzf freepbx-16.0-latest.tgz&lt;br /&gt;
&lt;br /&gt;
Change to the FreePBX source directory:&lt;br /&gt;
&lt;br /&gt;
cd freepbx&lt;br /&gt;
&lt;br /&gt;
Install Node.js and npm:&lt;br /&gt;
&lt;br /&gt;
apt-get install nodejs npm -y&lt;br /&gt;
&lt;br /&gt;
Run the FreePBX installer:&lt;br /&gt;
&lt;br /&gt;
./install -n&lt;br /&gt;
&lt;br /&gt;
Install the FreePBX PM2 module:&lt;br /&gt;
&lt;br /&gt;
fwconsole ma install pm2&lt;br /&gt;
&lt;br /&gt;
=== Configure Apache ===&lt;br /&gt;
Set the Apache process to use the asterisk user and group:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
Enable Apache directory overrides:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
Enable Apache URL rewriting:&lt;br /&gt;
&lt;br /&gt;
a2enmod rewrite&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
== Step 9: Configure PHP ==&lt;br /&gt;
The PHP configuration can be adjusted to allow larger uploads and provide additional memory for PHP processes.&lt;br /&gt;
&lt;br /&gt;
For the Apache PHP configuration, modify upload_max_filesize:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
Apply the same setting to the PHP CLI configuration:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
Set the PHP memory limit for Apache:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
Set the PHP CLI memory limit:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
Restart Apache to apply the PHP configuration:&lt;br /&gt;
&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
== Admin Module considerations ==&lt;br /&gt;
A manually compiled installation of Asterisk and a manually installed FreePBX system is different from a pre-built FreePBX distribution. Components that are automatically installed, configured, or maintained by a distribution may therefore require additional configuration.&lt;br /&gt;
&lt;br /&gt;
If the FreePBX &#039;&#039;&#039;Admin Module&#039;&#039;&#039; is not displayed after installation, the installation should be checked using the FreePBX CLI:&lt;br /&gt;
&lt;br /&gt;
fwconsole moduleadmin&lt;br /&gt;
&lt;br /&gt;
The available modules can also be examined with:&lt;br /&gt;
&lt;br /&gt;
fwconsole ma list&lt;br /&gt;
&lt;br /&gt;
Module installation or activation can be performed through the FreePBX module management commands when the required module is available.&lt;br /&gt;
&lt;br /&gt;
The FreePBX CLI can also be used to perform administrative operations when the corresponding web interface is unavailable.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
This procedure describes a specific custom installation environment and should not be interpreted as a universal installation procedure for every version of FreePBX or Asterisk. Package names, PHP versions, dependencies, repository availability, and compatibility requirements may change between releases.&lt;br /&gt;
&lt;br /&gt;
In particular, &#039;&#039;&#039;PHP 7.4 is an end-of-life PHP release&#039;&#039;&#039;. Its use should therefore be considered in the context of the specific FreePBX version and compatibility requirements for which this procedure was originally developed. For new deployments, the PHP version supported by the target FreePBX release should be verified before installation.&lt;br /&gt;
&lt;br /&gt;
Likewise, the asterisk-20-current.tar.gz archive refers to the current Asterisk 20 source available from the specified download location at the time of installation. The resulting version may change as new Asterisk 20 rel&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=440</id>
		<title>Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=440"/>
		<updated>2026-09-11T17:08:21Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide describes the installation of &#039;&#039;&#039;Asterisk&#039;&#039;&#039; and &#039;&#039;&#039;FreePBX&#039;&#039;&#039; on &#039;&#039;&#039;Ubuntu 22.04 LTS&#039;&#039;&#039;. The procedure includes system preparation, dependency installation, Asterisk compilation and configuration, PHP and web-server configuration, and installation of FreePBX.&lt;br /&gt;
&lt;br /&gt;
A custom installation of FreePBX may differ from a pre-built FreePBX distribution. In particular, some modules or administrative components that are normally included or configured in a complete FreePBX distribution may not be present after a manual installation.&lt;br /&gt;
&lt;br /&gt;
One such component is the &#039;&#039;&#039;Admin Module&#039;&#039;&#039;. The Admin Module provides a web-based interface for managing various aspects of a FreePBX system, including users, permissions, system settings, and module administration.&lt;br /&gt;
&lt;br /&gt;
If the Admin Module is unavailable after a custom installation, it may need to be installed separately. Administrative operations can also be performed through the FreePBX command-line interface (CLI) or by modifying configuration files directly. Consequently, some functionality normally available through the FreePBX web interface may require additional configuration when FreePBX is installed manually.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
The procedure assumes the following:&lt;br /&gt;
&lt;br /&gt;
·        A fresh installation of Ubuntu 22.04 LTS.&lt;br /&gt;
&lt;br /&gt;
·        Root or sudo access to the server.&lt;br /&gt;
&lt;br /&gt;
·        Internet connectivity for downloading packages and source code.&lt;br /&gt;
&lt;br /&gt;
·        A server with sufficient resources to compile and run Asterisk and FreePBX.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Update the system ==&lt;br /&gt;
The system should first be updated so that installed packages are current.&lt;br /&gt;
&lt;br /&gt;
apt-get update -y&lt;br /&gt;
&lt;br /&gt;
apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set the hostname ==&lt;br /&gt;
Set the hostname of the server to freepbx:&lt;br /&gt;
&lt;br /&gt;
hostnamectl set-hostname freepbx&lt;br /&gt;
&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
Add the appropriate IP address, hostname, and DNS or domain name entries to /etc/hosts.&lt;br /&gt;
&lt;br /&gt;
The exact entries depend on the network configuration of the server.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Configure swap space ==&lt;br /&gt;
Swap space can be configured to provide additional virtual memory and help prevent memory exhaustion during software compilation and operation.&lt;br /&gt;
&lt;br /&gt;
First, check the current swap, memory, and disk configuration:&lt;br /&gt;
&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&lt;br /&gt;
free -h&lt;br /&gt;
&lt;br /&gt;
df -h&lt;br /&gt;
&lt;br /&gt;
Create a 2 GB swap file:&lt;br /&gt;
&lt;br /&gt;
sudo fallocate -l 2G /swapfile&lt;br /&gt;
&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
&lt;br /&gt;
Set the appropriate permissions:&lt;br /&gt;
&lt;br /&gt;
sudo chmod 600 /swapfile&lt;br /&gt;
&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
&lt;br /&gt;
Initialize and enable the swap file:&lt;br /&gt;
&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&lt;br /&gt;
free -h&lt;br /&gt;
&lt;br /&gt;
Back up the existing /etc/fstab file:&lt;br /&gt;
&lt;br /&gt;
sudo cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
&lt;br /&gt;
Add the swap file to /etc/fstab so that it is automatically enabled after a reboot:&lt;br /&gt;
&lt;br /&gt;
echo &#039;/swapfile none swap sw 0 0&#039; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
The Linux virtual-memory parameters can be adjusted in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
sudo nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
Add the following values:&lt;br /&gt;
&lt;br /&gt;
vm.swappiness=10&lt;br /&gt;
&lt;br /&gt;
vm.vfs_cache_pressure=50&lt;br /&gt;
&lt;br /&gt;
The resulting configuration can be inspected with:&lt;br /&gt;
&lt;br /&gt;
cat /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
== Step 4: Reboot the system ==&lt;br /&gt;
Reboot the server to apply the system configuration changes:&lt;br /&gt;
&lt;br /&gt;
reboot&lt;br /&gt;
&lt;br /&gt;
== Step 5: Install Asterisk ==&lt;br /&gt;
Install the packages required to compile Asterisk and provide several of its optional components:&lt;br /&gt;
&lt;br /&gt;
apt-get install unzip git sox gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev libedit-dev uuid-dev subversion -y&lt;br /&gt;
&lt;br /&gt;
Download the current Asterisk 20 source archive:&lt;br /&gt;
&lt;br /&gt;
wget &amp;lt;nowiki&amp;gt;http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
&lt;br /&gt;
Change to the extracted Asterisk source directory:&lt;br /&gt;
&lt;br /&gt;
cd asterisk-20.*&lt;br /&gt;
&lt;br /&gt;
Download the MP3 source required for MP3 support:&lt;br /&gt;
&lt;br /&gt;
contrib/scripts/get_mp3_source.sh&lt;br /&gt;
&lt;br /&gt;
Install the Asterisk prerequisite packages:&lt;br /&gt;
&lt;br /&gt;
contrib/scripts/install_prereq install&lt;br /&gt;
&lt;br /&gt;
Configure the Asterisk build:&lt;br /&gt;
&lt;br /&gt;
./configure&lt;br /&gt;
&lt;br /&gt;
Open the Asterisk module-selection interface:&lt;br /&gt;
&lt;br /&gt;
make menuselect&lt;br /&gt;
&lt;br /&gt;
Compile and install Asterisk:&lt;br /&gt;
&lt;br /&gt;
make -j2&lt;br /&gt;
&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
make samples&lt;br /&gt;
&lt;br /&gt;
make config&lt;br /&gt;
&lt;br /&gt;
ldconfig&lt;br /&gt;
&lt;br /&gt;
The -j2 option instructs make to use two parallel jobs during compilation. The number can be adjusted according to the available CPU resources.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Configure Asterisk ==&lt;br /&gt;
A dedicated system user and group are used to run Asterisk.&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk group:&lt;br /&gt;
&lt;br /&gt;
groupadd asterisk&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk system user:&lt;br /&gt;
&lt;br /&gt;
useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
&lt;br /&gt;
Add the Asterisk user to the audio and dialout groups:&lt;br /&gt;
&lt;br /&gt;
usermod -aG audio,dialout asterisk&lt;br /&gt;
&lt;br /&gt;
Change ownership of the Asterisk configuration, library, log, and spool directories:&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /etc/asterisk&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /usr/lib/asterisk&lt;br /&gt;
&lt;br /&gt;
Edit the Asterisk default configuration:&lt;br /&gt;
&lt;br /&gt;
nano /etc/default/asterisk&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Asterisk configuration file can also be used to specify the user and group under which the Asterisk process operates:&lt;br /&gt;
&lt;br /&gt;
nano /etc/asterisk/asterisk.conf&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
runuser = asterisk&lt;br /&gt;
&lt;br /&gt;
rungroup = asterisk&lt;br /&gt;
&lt;br /&gt;
Restart Asterisk and enable it to start automatically with the system:&lt;br /&gt;
&lt;br /&gt;
systemctl restart asterisk&lt;br /&gt;
&lt;br /&gt;
systemctl enable asterisk&lt;br /&gt;
&lt;br /&gt;
systemctl status asterisk&lt;br /&gt;
&lt;br /&gt;
=== Correct common configuration errors ===&lt;br /&gt;
The following commands modify the Asterisk CDR and CEL configuration files to correct common RADIUS-related configuration issues:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
&lt;br /&gt;
Start Asterisk and connect to its command-line interface:&lt;br /&gt;
&lt;br /&gt;
systemctl start asterisk&lt;br /&gt;
&lt;br /&gt;
asterisk -rvv&lt;br /&gt;
&lt;br /&gt;
After verifying the Asterisk CLI, leave it with:&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
== Step 7: Install FreePBX dependencies ==&lt;br /&gt;
FreePBX requires a web server, database server, PHP, and several PHP extensions.&lt;br /&gt;
&lt;br /&gt;
Install software-properties-common:&lt;br /&gt;
&lt;br /&gt;
apt install software-properties-common&lt;br /&gt;
&lt;br /&gt;
Add the Ondřej Surý PHP repository:&lt;br /&gt;
&lt;br /&gt;
add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
&lt;br /&gt;
Install Apache HTTP Server, MariaDB, PHP 7.4, and the required PHP extensions:&lt;br /&gt;
&lt;br /&gt;
apt install apache2 mariadb-server libapache2-mod-php7.4 php7.4 php-pear php7.4-cgi php7.4-common php7.4-curl php7.4-mbstring php7.4-gd php7.4-mysql php7.4-bcmath php7.4-zip php7.4-xml php7.4-imap php7.4-json php7.4-snmp -y&lt;br /&gt;
&lt;br /&gt;
=== Configure PHP 7.4 as the default PHP version ===&lt;br /&gt;
Disable the currently enabled Apache PHP modules:&lt;br /&gt;
&lt;br /&gt;
sudo a2dismod php*&lt;br /&gt;
&lt;br /&gt;
Enable the PHP 7.4 Apache module:&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod php7.4&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Set PHP 7.4 as the default command-line PHP version:&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set php /usr/bin/php7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phar /usr/bin/phar7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phpize /usr/bin/phpize7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set php-config /usr/bin/php-config7.4&lt;br /&gt;
&lt;br /&gt;
== Step 8: Download and install FreePBX ==&lt;br /&gt;
Download the latest FreePBX 16 release available from the specified FreePBX mirror:&lt;br /&gt;
&lt;br /&gt;
wget &amp;lt;nowiki&amp;gt;http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
tar -xvzf freepbx-16.0-latest.tgz&lt;br /&gt;
&lt;br /&gt;
Change to the FreePBX source directory:&lt;br /&gt;
&lt;br /&gt;
cd freepbx&lt;br /&gt;
&lt;br /&gt;
Install Node.js and npm:&lt;br /&gt;
&lt;br /&gt;
apt-get install nodejs npm -y&lt;br /&gt;
&lt;br /&gt;
Run the FreePBX installer:&lt;br /&gt;
&lt;br /&gt;
./install -n&lt;br /&gt;
&lt;br /&gt;
Install the FreePBX PM2 module:&lt;br /&gt;
&lt;br /&gt;
fwconsole ma install pm2&lt;br /&gt;
&lt;br /&gt;
=== Configure Apache ===&lt;br /&gt;
Set the Apache process to use the asterisk user and group:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
Enable Apache directory overrides:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
Enable Apache URL rewriting:&lt;br /&gt;
&lt;br /&gt;
a2enmod rewrite&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
== Step 9: Configure PHP ==&lt;br /&gt;
The PHP configuration can be adjusted to allow larger uploads and provide additional memory for PHP processes.&lt;br /&gt;
&lt;br /&gt;
For the Apache PHP configuration, modify upload_max_filesize:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
Apply the same setting to the PHP CLI configuration:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
Set the PHP memory limit for Apache:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
Set the PHP CLI memory limit:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
Restart Apache to apply the PHP configuration:&lt;br /&gt;
&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
== Admin Module considerations ==&lt;br /&gt;
A manually compiled installation of Asterisk and a manually installed FreePBX system is different from a pre-built FreePBX distribution. Components that are automatically installed, configured, or maintained by a distribution may therefore require additional configuration.&lt;br /&gt;
&lt;br /&gt;
If the FreePBX &#039;&#039;&#039;Admin Module&#039;&#039;&#039; is not displayed after installation, the installation should be checked using the FreePBX CLI:&lt;br /&gt;
&lt;br /&gt;
fwconsole moduleadmin&lt;br /&gt;
&lt;br /&gt;
The available modules can also be examined with:&lt;br /&gt;
&lt;br /&gt;
fwconsole ma list&lt;br /&gt;
&lt;br /&gt;
Module installation or activation can be performed through the FreePBX module management commands when the required module is available.&lt;br /&gt;
&lt;br /&gt;
The FreePBX CLI can also be used to perform administrative operations when the corresponding web interface is unavailable.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
This procedure describes a specific custom installation environment and should not be interpreted as a universal installation procedure for every version of FreePBX or Asterisk. Package names, PHP versions, dependencies, repository availability, and compatibility requirements may change between releases.&lt;br /&gt;
&lt;br /&gt;
In particular, &#039;&#039;&#039;PHP 7.4 is an end-of-life PHP release&#039;&#039;&#039;. Its use should therefore be considered in the context of the specific FreePBX version and compatibility requirements for which this procedure was originally developed. For new deployments, the PHP version supported by the target FreePBX release should be verified before installation.&lt;br /&gt;
&lt;br /&gt;
Likewise, the asterisk-20-current.tar.gz archive refers to the current Asterisk 20 source available from the specified download location at the time of installation. The resulting version may change as new Asterisk 20 rel&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=439</id>
		<title>Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=439"/>
		<updated>2026-09-11T17:08:01Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=438</id>
		<title>Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=438"/>
		<updated>2026-09-11T17:06:54Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide describes the installation of &#039;&#039;&#039;Asterisk&#039;&#039;&#039; and &#039;&#039;&#039;FreePBX&#039;&#039;&#039; on &#039;&#039;&#039;Ubuntu 22.04 LTS&#039;&#039;&#039;. The procedure includes system preparation, dependency installation, Asterisk compilation and configuration, PHP and web-server configuration, and installation of FreePBX.&lt;br /&gt;
&lt;br /&gt;
A custom installation of FreePBX may differ from a pre-built FreePBX distribution. In particular, some modules or administrative components that are normally included or configured in a complete FreePBX distribution may not be present after a manual installation.&lt;br /&gt;
&lt;br /&gt;
One such component is the &#039;&#039;&#039;Admin Module&#039;&#039;&#039;. The Admin Module provides a web-based interface for managing various aspects of a FreePBX system, including users, permissions, system settings, and module administration.&lt;br /&gt;
&lt;br /&gt;
If the Admin Module is unavailable after a custom installation, it may need to be installed separately. Administrative operations can also be performed through the FreePBX command-line interface (CLI) or by modifying configuration files directly. Consequently, some functionality normally available through the FreePBX web interface may require additional configuration when FreePBX is installed manually.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
The procedure assumes the following:&lt;br /&gt;
&lt;br /&gt;
·        A fresh installation of Ubuntu 22.04 LTS.&lt;br /&gt;
&lt;br /&gt;
·        Root or sudo access to the server.&lt;br /&gt;
&lt;br /&gt;
·        Internet connectivity for downloading packages and source code.&lt;br /&gt;
&lt;br /&gt;
·        A server with sufficient resources to compile and run Asterisk and FreePBX.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Update the system ==&lt;br /&gt;
The system should first be updated so that installed packages are current.&lt;br /&gt;
&lt;br /&gt;
apt-get update -y&lt;br /&gt;
&lt;br /&gt;
apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set the hostname ==&lt;br /&gt;
Set the hostname of the server to freepbx:&lt;br /&gt;
&lt;br /&gt;
hostnamectl set-hostname freepbx&lt;br /&gt;
&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&lt;br /&gt;
Add the appropriate IP address, hostname, and DNS or domain name entries to /etc/hosts.&lt;br /&gt;
&lt;br /&gt;
The exact entries depend on the network configuration of the server.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Configure swap space ==&lt;br /&gt;
Swap space can be configured to provide additional virtual memory and help prevent memory exhaustion during software compilation and operation.&lt;br /&gt;
&lt;br /&gt;
First, check the current swap, memory, and disk configuration:&lt;br /&gt;
&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&lt;br /&gt;
free -h&lt;br /&gt;
&lt;br /&gt;
df -h&lt;br /&gt;
&lt;br /&gt;
Create a 2 GB swap file:&lt;br /&gt;
&lt;br /&gt;
sudo fallocate -l 2G /swapfile&lt;br /&gt;
&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
&lt;br /&gt;
Set the appropriate permissions:&lt;br /&gt;
&lt;br /&gt;
sudo chmod 600 /swapfile&lt;br /&gt;
&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
&lt;br /&gt;
Initialize and enable the swap file:&lt;br /&gt;
&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&lt;br /&gt;
free -h&lt;br /&gt;
&lt;br /&gt;
Back up the existing /etc/fstab file:&lt;br /&gt;
&lt;br /&gt;
sudo cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
&lt;br /&gt;
Add the swap file to /etc/fstab so that it is automatically enabled after a reboot:&lt;br /&gt;
&lt;br /&gt;
echo &#039;/swapfile none swap sw 0 0&#039; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
The Linux virtual-memory parameters can be adjusted in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
sudo nano /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
Add the following values:&lt;br /&gt;
&lt;br /&gt;
vm.swappiness=10&lt;br /&gt;
&lt;br /&gt;
vm.vfs_cache_pressure=50&lt;br /&gt;
&lt;br /&gt;
The resulting configuration can be inspected with:&lt;br /&gt;
&lt;br /&gt;
cat /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
== Step 4: Reboot the system ==&lt;br /&gt;
Reboot the server to apply the system configuration changes:&lt;br /&gt;
&lt;br /&gt;
reboot&lt;br /&gt;
&lt;br /&gt;
== Step 5: Install Asterisk ==&lt;br /&gt;
Install the packages required to compile Asterisk and provide several of its optional components:&lt;br /&gt;
&lt;br /&gt;
apt-get install unzip git sox gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev libedit-dev uuid-dev subversion -y&lt;br /&gt;
&lt;br /&gt;
Download the current Asterisk 20 source archive:&lt;br /&gt;
&lt;br /&gt;
wget &amp;lt;nowiki&amp;gt;http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
&lt;br /&gt;
Change to the extracted Asterisk source directory:&lt;br /&gt;
&lt;br /&gt;
cd asterisk-20.*&lt;br /&gt;
&lt;br /&gt;
Download the MP3 source required for MP3 support:&lt;br /&gt;
&lt;br /&gt;
contrib/scripts/get_mp3_source.sh&lt;br /&gt;
&lt;br /&gt;
Install the Asterisk prerequisite packages:&lt;br /&gt;
&lt;br /&gt;
contrib/scripts/install_prereq install&lt;br /&gt;
&lt;br /&gt;
Configure the Asterisk build:&lt;br /&gt;
&lt;br /&gt;
./configure&lt;br /&gt;
&lt;br /&gt;
Open the Asterisk module-selection interface:&lt;br /&gt;
&lt;br /&gt;
make menuselect&lt;br /&gt;
&lt;br /&gt;
Compile and install Asterisk:&lt;br /&gt;
&lt;br /&gt;
make -j2&lt;br /&gt;
&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
make samples&lt;br /&gt;
&lt;br /&gt;
make config&lt;br /&gt;
&lt;br /&gt;
ldconfig&lt;br /&gt;
&lt;br /&gt;
The -j2 option instructs make to use two parallel jobs during compilation. The number can be adjusted according to the available CPU resources.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Configure Asterisk ==&lt;br /&gt;
A dedicated system user and group are used to run Asterisk.&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk group:&lt;br /&gt;
&lt;br /&gt;
groupadd asterisk&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk system user:&lt;br /&gt;
&lt;br /&gt;
useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
&lt;br /&gt;
Add the Asterisk user to the audio and dialout groups:&lt;br /&gt;
&lt;br /&gt;
usermod -aG audio,dialout asterisk&lt;br /&gt;
&lt;br /&gt;
Change ownership of the Asterisk configuration, library, log, and spool directories:&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /etc/asterisk&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
&lt;br /&gt;
chown -R asterisk.asterisk /usr/lib/asterisk&lt;br /&gt;
&lt;br /&gt;
Edit the Asterisk default configuration:&lt;br /&gt;
&lt;br /&gt;
nano /etc/default/asterisk&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Asterisk configuration file can also be used to specify the user and group under which the Asterisk process operates:&lt;br /&gt;
&lt;br /&gt;
nano /etc/asterisk/asterisk.conf&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
runuser = asterisk&lt;br /&gt;
&lt;br /&gt;
rungroup = asterisk&lt;br /&gt;
&lt;br /&gt;
Restart Asterisk and enable it to start automatically with the system:&lt;br /&gt;
&lt;br /&gt;
systemctl restart asterisk&lt;br /&gt;
&lt;br /&gt;
systemctl enable asterisk&lt;br /&gt;
&lt;br /&gt;
systemctl status asterisk&lt;br /&gt;
&lt;br /&gt;
=== Correct common configuration errors ===&lt;br /&gt;
The following commands modify the Asterisk CDR and CEL configuration files to correct common RADIUS-related configuration issues:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
&lt;br /&gt;
Start Asterisk and connect to its command-line interface:&lt;br /&gt;
&lt;br /&gt;
systemctl start asterisk&lt;br /&gt;
&lt;br /&gt;
asterisk -rvv&lt;br /&gt;
&lt;br /&gt;
After verifying the Asterisk CLI, leave it with:&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
== Step 7: Install FreePBX dependencies ==&lt;br /&gt;
FreePBX requires a web server, database server, PHP, and several PHP extensions.&lt;br /&gt;
&lt;br /&gt;
Install software-properties-common:&lt;br /&gt;
&lt;br /&gt;
apt install software-properties-common&lt;br /&gt;
&lt;br /&gt;
Add the Ondřej Surý PHP repository:&lt;br /&gt;
&lt;br /&gt;
add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
&lt;br /&gt;
Install Apache HTTP Server, MariaDB, PHP 7.4, and the required PHP extensions:&lt;br /&gt;
&lt;br /&gt;
apt install apache2 mariadb-server libapache2-mod-php7.4 php7.4 php-pear php7.4-cgi php7.4-common php7.4-curl php7.4-mbstring php7.4-gd php7.4-mysql php7.4-bcmath php7.4-zip php7.4-xml php7.4-imap php7.4-json php7.4-snmp -y&lt;br /&gt;
&lt;br /&gt;
=== Configure PHP 7.4 as the default PHP version ===&lt;br /&gt;
Disable the currently enabled Apache PHP modules:&lt;br /&gt;
&lt;br /&gt;
sudo a2dismod php*&lt;br /&gt;
&lt;br /&gt;
Enable the PHP 7.4 Apache module:&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod php7.4&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
Set PHP 7.4 as the default command-line PHP version:&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set php /usr/bin/php7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phar /usr/bin/phar7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set phpize /usr/bin/phpize7.4&lt;br /&gt;
&lt;br /&gt;
sudo update-alternatives --set php-config /usr/bin/php-config7.4&lt;br /&gt;
&lt;br /&gt;
== Step 8: Download and install FreePBX ==&lt;br /&gt;
Download the latest FreePBX 16 release available from the specified FreePBX mirror:&lt;br /&gt;
&lt;br /&gt;
wget &amp;lt;nowiki&amp;gt;http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
tar -xvzf freepbx-16.0-latest.tgz&lt;br /&gt;
&lt;br /&gt;
Change to the FreePBX source directory:&lt;br /&gt;
&lt;br /&gt;
cd freepbx&lt;br /&gt;
&lt;br /&gt;
Install Node.js and npm:&lt;br /&gt;
&lt;br /&gt;
apt-get install nodejs npm -y&lt;br /&gt;
&lt;br /&gt;
Run the FreePBX installer:&lt;br /&gt;
&lt;br /&gt;
./install -n&lt;br /&gt;
&lt;br /&gt;
Install the FreePBX PM2 module:&lt;br /&gt;
&lt;br /&gt;
fwconsole ma install pm2&lt;br /&gt;
&lt;br /&gt;
=== Configure Apache ===&lt;br /&gt;
Set the Apache process to use the asterisk user and group:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
Enable Apache directory overrides:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
Enable Apache URL rewriting:&lt;br /&gt;
&lt;br /&gt;
a2enmod rewrite&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
== Step 9: Configure PHP ==&lt;br /&gt;
The PHP configuration can be adjusted to allow larger uploads and provide additional memory for PHP processes.&lt;br /&gt;
&lt;br /&gt;
For the Apache PHP configuration, modify upload_max_filesize:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
Apply the same setting to the PHP CLI configuration:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
Set the PHP memory limit for Apache:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
Set the PHP CLI memory limit:&lt;br /&gt;
&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
Restart Apache to apply the PHP configuration:&lt;br /&gt;
&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
== Admin Module considerations ==&lt;br /&gt;
A manually compiled installation of Asterisk and a manually installed FreePBX system is different from a pre-built FreePBX distribution. Components that are automatically installed, configured, or maintained by a distribution may therefore require additional configuration.&lt;br /&gt;
&lt;br /&gt;
If the FreePBX &#039;&#039;&#039;Admin Module&#039;&#039;&#039; is not displayed after installation, the installation should be checked using the FreePBX CLI:&lt;br /&gt;
&lt;br /&gt;
fwconsole moduleadmin&lt;br /&gt;
&lt;br /&gt;
The available modules can also be examined with:&lt;br /&gt;
&lt;br /&gt;
fwconsole ma list&lt;br /&gt;
&lt;br /&gt;
Module installation or activation can be performed through the FreePBX module management commands when the required module is available.&lt;br /&gt;
&lt;br /&gt;
The FreePBX CLI can also be used to perform administrative operations when the corresponding web interface is unavailable.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
This procedure describes a specific custom installation environment and should not be interpreted as a universal installation procedure for every version of FreePBX or Asterisk. Package names, PHP versions, dependencies, repository availability, and compatibility requirements may change between releases.&lt;br /&gt;
&lt;br /&gt;
In particular, &#039;&#039;&#039;PHP 7.4 is an end-of-life PHP release&#039;&#039;&#039;. Its use should therefore be considered in the context of the specific FreePBX version and compatibility requirements for which this procedure was originally developed. For new deployments, the PHP version supported by the target FreePBX release should be verified before installation.&lt;br /&gt;
&lt;br /&gt;
Likewise, the asterisk-20-current.tar.gz archive refers to the current Asterisk 20 source available from the specified download location at the time of installation. The resulting version may change as new Asterisk 20 rel&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=437</id>
		<title>Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Installing-freepbx-and-asterisk-on-ubuntu-22-04-lts&amp;diff=437"/>
		<updated>2026-09-11T17:03:37Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot; Sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/   # FreePBX and Asterisk installation on Ubuntu 22.04 LTS  This guide describes the installation of **Asterisk** and **FreePBX** on **Ubuntu 22.04 LTS**. The procedure includes system preparation, dependency installation, Asterisk compilation and configuration, PHP and web-server configuration, and installation of FreePBX.  A custom installation of FreePBX may differ from a pre-built FreeP...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
 # FreePBX and Asterisk installation on Ubuntu 22.04 LTS&lt;br /&gt;
&lt;br /&gt;
This guide describes the installation of **Asterisk** and **FreePBX** on **Ubuntu 22.04 LTS**. The procedure includes system preparation, dependency installation, Asterisk compilation and configuration, PHP and web-server configuration, and installation of FreePBX.&lt;br /&gt;
&lt;br /&gt;
A custom installation of FreePBX may differ from a pre-built FreePBX distribution. In particular, some modules or administrative components that are normally included or configured in a complete FreePBX distribution may not be present after a manual installation.&lt;br /&gt;
&lt;br /&gt;
One such component is the **Admin Module**. The Admin Module provides a web-based interface for managing various aspects of a FreePBX system, including users, permissions, system settings, and module administration.&lt;br /&gt;
&lt;br /&gt;
If the Admin Module is unavailable after a custom installation, it may need to be installed separately. Administrative operations can also be performed through the FreePBX command-line interface (CLI) or by modifying configuration files directly. Consequently, some functionality normally available through the FreePBX web interface may require additional configuration when FreePBX is installed manually.&lt;br /&gt;
&lt;br /&gt;
## Prerequisites&lt;br /&gt;
&lt;br /&gt;
The procedure assumes the following:&lt;br /&gt;
&lt;br /&gt;
* A fresh installation of Ubuntu 22.04 LTS.&lt;br /&gt;
* Root or `sudo` access to the server.&lt;br /&gt;
* Internet connectivity for downloading packages and source code.&lt;br /&gt;
* A server with sufficient resources to compile and run Asterisk and FreePBX.&lt;br /&gt;
&lt;br /&gt;
## Step 1: Update the system&lt;br /&gt;
&lt;br /&gt;
The system should first be updated so that installed packages are current.&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
apt-get update -y&lt;br /&gt;
apt-get upgrade -y&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Step 2: Set the hostname&lt;br /&gt;
&lt;br /&gt;
Set the hostname of the server to `freepbx`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
hostnamectl set-hostname freepbx&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Add the appropriate IP address, hostname, and DNS or domain name entries to `/etc/hosts`.&lt;br /&gt;
&lt;br /&gt;
The exact entries depend on the network configuration of the server.&lt;br /&gt;
&lt;br /&gt;
## Step 3: Configure swap space&lt;br /&gt;
&lt;br /&gt;
Swap space can be configured to provide additional virtual memory and help prevent memory exhaustion during software compilation and operation.&lt;br /&gt;
&lt;br /&gt;
First, check the current swap, memory, and disk configuration:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
free -h&lt;br /&gt;
df -h&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Create a 2 GB swap file:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo fallocate -l 2G /swapfile&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Set the appropriate permissions:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo chmod 600 /swapfile&lt;br /&gt;
ls -lh /swapfile&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Initialize and enable the swap file:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
free -h&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Back up the existing `/etc/fstab` file:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Add the swap file to `/etc/fstab` so that it is automatically enabled after a reboot:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
echo &#039;/swapfile none swap sw 0 0&#039; | sudo tee -a /etc/fstab&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The Linux virtual-memory parameters can be adjusted in `/etc/sysctl.conf`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo nano /etc/sysctl.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Add the following values:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
vm.swappiness=10&lt;br /&gt;
vm.vfs_cache_pressure=50&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The resulting configuration can be inspected with:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
cat /etc/sysctl.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Step 4: Reboot the system&lt;br /&gt;
&lt;br /&gt;
Reboot the server to apply the system configuration changes:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
reboot&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Step 5: Install Asterisk&lt;br /&gt;
&lt;br /&gt;
Install the packages required to compile Asterisk and provide several of its optional components:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
apt-get install unzip git sox gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev libedit-dev uuid-dev subversion -y&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Download the current Asterisk 20 source archive:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Change to the extracted Asterisk source directory:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
cd asterisk-20.*&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Download the MP3 source required for MP3 support:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
contrib/scripts/get_mp3_source.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Install the Asterisk prerequisite packages:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
contrib/scripts/install_prereq install&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Configure the Asterisk build:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
./configure&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Open the Asterisk module-selection interface:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
make menuselect&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Compile and install Asterisk:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
make -j2&lt;br /&gt;
make install&lt;br /&gt;
make samples&lt;br /&gt;
make config&lt;br /&gt;
ldconfig&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The `-j2` option instructs `make` to use two parallel jobs during compilation. The number can be adjusted according to the available CPU resources.&lt;br /&gt;
&lt;br /&gt;
## Step 6: Configure Asterisk&lt;br /&gt;
&lt;br /&gt;
A dedicated system user and group are used to run Asterisk.&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk group:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
groupadd asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Create the Asterisk system user:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Add the Asterisk user to the `audio` and `dialout` groups:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
usermod -aG audio,dialout asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Change ownership of the Asterisk configuration, library, log, and spool directories:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
chown -R asterisk.asterisk /etc/asterisk&lt;br /&gt;
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
chown -R asterisk.asterisk /usr/lib/asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Edit the Asterisk default configuration:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
nano /etc/default/asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The Asterisk configuration file can also be used to specify the user and group under which the Asterisk process operates:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
nano /etc/asterisk/asterisk.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Set the following values:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
runuser = asterisk&lt;br /&gt;
rungroup = asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Restart Asterisk and enable it to start automatically with the system:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
systemctl restart asterisk&lt;br /&gt;
systemctl enable asterisk&lt;br /&gt;
systemctl status asterisk&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Correct common configuration errors&lt;br /&gt;
&lt;br /&gt;
The following commands modify the Asterisk CDR and CEL configuration files to correct common RADIUS-related configuration issues:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Start Asterisk and connect to its command-line interface:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
systemctl start asterisk&lt;br /&gt;
asterisk -rvv&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
After verifying the Asterisk CLI, leave it with:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
exit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Step 7: Install FreePBX dependencies&lt;br /&gt;
&lt;br /&gt;
FreePBX requires a web server, database server, PHP, and several PHP extensions.&lt;br /&gt;
&lt;br /&gt;
Install `software-properties-common`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
apt install software-properties-common&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Add the Ondřej Surý PHP repository:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Install Apache HTTP Server, MariaDB, PHP 7.4, and the required PHP extensions:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
apt install apache2 mariadb-server libapache2-mod-php7.4 php7.4 php-pear php7.4-cgi php7.4-common php7.4-curl php7.4-mbstring php7.4-gd php7.4-mysql php7.4-bcmath php7.4-zip php7.4-xml php7.4-imap php7.4-json php7.4-snmp -y&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Configure PHP 7.4 as the default PHP version&lt;br /&gt;
&lt;br /&gt;
Disable the currently enabled Apache PHP modules:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo a2dismod php*&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Enable the PHP 7.4 Apache module:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo a2enmod php7.4&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Set PHP 7.4 as the default command-line PHP version:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo update-alternatives --set php /usr/bin/php7.4&lt;br /&gt;
sudo update-alternatives --set phar /usr/bin/phar7.4&lt;br /&gt;
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4&lt;br /&gt;
sudo update-alternatives --set phpize /usr/bin/phpize7.4&lt;br /&gt;
sudo update-alternatives --set php-config /usr/bin/php-config7.4&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Step 8: Download and install FreePBX&lt;br /&gt;
&lt;br /&gt;
Download the latest FreePBX 16 release available from the specified FreePBX mirror:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Extract the archive:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
tar -xvzf freepbx-16.0-latest.tgz&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Change to the FreePBX source directory:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
cd freepbx&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Install Node.js and npm:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
apt-get install nodejs npm -y&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Run the FreePBX installer:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
./install -n&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Install the FreePBX PM2 module:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
fwconsole ma install pm2&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Configure Apache&lt;br /&gt;
&lt;br /&gt;
Set the Apache process to use the `asterisk` user and group:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Enable Apache directory overrides:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Enable Apache URL rewriting:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
a2enmod rewrite&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Restart Apache:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Step 9: Configure PHP&lt;br /&gt;
&lt;br /&gt;
The PHP configuration can be adjusted to allow larger uploads and provide additional memory for PHP processes.&lt;br /&gt;
&lt;br /&gt;
For the Apache PHP configuration, modify `upload_max_filesize`:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Apply the same setting to the PHP CLI configuration:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s/\(^upload_max_filesize = \).*/\512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Set the PHP memory limit for Apache:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/apache2/php.ini&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Set the PHP CLI memory limit:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sed -i &#039;s/\(^memory_limit = \).*/\1512M/&#039; /etc/php/7.4/cli/php.ini&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Restart Apache to apply the PHP configuration:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Admin Module considerations&lt;br /&gt;
&lt;br /&gt;
A manually compiled installation of Asterisk and a manually installed FreePBX system is different from a pre-built FreePBX distribution. Components that are automatically installed, configured, or maintained by a distribution may therefore require additional configuration.&lt;br /&gt;
&lt;br /&gt;
If the FreePBX **Admin Module** is not displayed after installation, the installation should be checked using the FreePBX CLI:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
fwconsole moduleadmin&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The available modules can also be examined with:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
fwconsole ma list&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Module installation or activation can be performed through the FreePBX module management commands when the required module is available.&lt;br /&gt;
&lt;br /&gt;
The FreePBX CLI can also be used to perform administrative operations when the corresponding web interface is unavailable.&lt;br /&gt;
&lt;br /&gt;
## Notes&lt;br /&gt;
&lt;br /&gt;
This procedure describes a specific custom installation environment and should not be interpreted as a universal installation procedure for every version of FreePBX or Asterisk. Package names, PHP versions, dependencies, repository availability, and compatibility requirements may change between releases.&lt;br /&gt;
&lt;br /&gt;
In particular, **PHP 7.4 is an end-of-life PHP release**. Its use should therefore be considered in the context of the specific FreePBX version and compatibility requirements for which this procedure was originally developed. For new deployments, the PHP version supported by the target FreePBX release should be verified before installation.&lt;br /&gt;
&lt;br /&gt;
Likewise, the `asterisk-20-current.tar.gz` archive refers to the current Asterisk 20 source available from the specified download location at the time of installation. The resulting version may change as new Asterisk 20 releases are published.&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Enabling_SSH_Root_Login_on_Ubuntu_or_Debian_Linux_Servers&amp;diff=436</id>
		<title>Enabling SSH Root Login on Ubuntu or Debian Linux Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Enabling_SSH_Root_Login_on_Ubuntu_or_Debian_Linux_Servers&amp;diff=436"/>
		<updated>2026-09-09T07:02:20Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; sudo nano /etc/ssh/sshd_config&lt;br /&gt;
 In the configuration file, find the line that says PermitRootLogin and change it to yes&lt;br /&gt;
 sudo systemctl restart ssh&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=435</id>
		<title>Install Moodle 5.2 ubuntu 24.04-apache-mariadb-php8.4 dengan Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=435"/>
		<updated>2026-09-08T14:28:43Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE&lt;br /&gt;
 cd /var/www/html&lt;br /&gt;
 sudo git clone git://git.moodle.org/moodle.git moodle&lt;br /&gt;
 cd moodle&lt;br /&gt;
 sudo git checkout MOODLE_502_STABLE&lt;br /&gt;
&lt;br /&gt;
==Buat Direktori Data (moodledata)==&lt;br /&gt;
 sudo mkdir /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/moodledata&lt;br /&gt;
 sudo chmod -R 777 /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/html/moodle&lt;br /&gt;
 &lt;br /&gt;
==REPOSITORY PHP 8.4==&lt;br /&gt;
 apt install -y software-properties-common ca-certificates \&lt;br /&gt;
    lsb-release apt-transport-https gnupg2 curl wget git unzip \&lt;br /&gt;
    openssl&lt;br /&gt;
 add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
 apt update&lt;br /&gt;
&lt;br /&gt;
==APACHE + PHP 8.4==&lt;br /&gt;
apt install -y apache2 \&lt;br /&gt;
    libapache2-mod-php8.4 \&lt;br /&gt;
    php8.4 \&lt;br /&gt;
    php8.4-cli \&lt;br /&gt;
    php8.4-common \&lt;br /&gt;
    php8.4-mysql \&lt;br /&gt;
    php8.4-xml \&lt;br /&gt;
    php8.4-curl \&lt;br /&gt;
    php8.4-zip \&lt;br /&gt;
    php8.4-gd \&lt;br /&gt;
    php8.4-intl \&lt;br /&gt;
    php8.4-mbstring \&lt;br /&gt;
    php8.4-soap \&lt;br /&gt;
    php8.4-bcmath \&lt;br /&gt;
    php8.4-ldap \&lt;br /&gt;
    php8.4-opcache \&lt;br /&gt;
    php8.4-readline \&lt;br /&gt;
    php8.4-apcu&lt;br /&gt;
&lt;br /&gt;
==DATABASE==&lt;br /&gt;
 apt install -y mariadb-server mariadb-client&lt;br /&gt;
 sudo systemctl start mariadb&lt;br /&gt;
 sudo systemctl enable mariadb&lt;br /&gt;
&lt;br /&gt;
Secure Installation&lt;br /&gt;
 sudo mysql_secure_installation&lt;br /&gt;
 Enter current password for root (enter for none): &lt;br /&gt;
 Set root password? [Y/n] y&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-enter new password: &lt;br /&gt;
 Remove anonymous users? [Y/n] y&lt;br /&gt;
 Disallow root login remotely? [Y/n] y&lt;br /&gt;
 Remove test database and access to it? [Y/n] y&lt;br /&gt;
 Reload privilege tables now? [Y/n] y&lt;br /&gt;
&lt;br /&gt;
Kalau hanya Latihan&lt;br /&gt;
 Password root 123456&lt;br /&gt;
 # mysql -u root -p123456&lt;br /&gt;
 create database moodle;&lt;br /&gt;
 ALTER DATABASE moodle charset=utf8mb4;&lt;br /&gt;
 ALTER DATABASE moodle CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;&lt;br /&gt;
 grant ALL on moodle.* to root@localhost;&lt;br /&gt;
 grant ALL on moodle.* to moodle@localhost identified by &amp;quot;moodle&amp;quot;;&lt;br /&gt;
 grant ALL on moodle.* to moodle identified by &amp;quot;moodle&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
 service mysqld start&lt;br /&gt;
 service mysqld restart&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi Apache Virtual Host==&lt;br /&gt;
&lt;br /&gt;
 Moodle versi 5.x mengharuskan document root diarahkan ke subfolder /public demi keamanan. &lt;br /&gt;
 Buat file konfigurasi baru&lt;br /&gt;
 sudo nano /etc/apache2/sites-available/moodle.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName localhost&lt;br /&gt;
    # PENTING: Arahkan ke folder /public untuk Moodle 5.x&lt;br /&gt;
    DocumentRoot /var/www/html/moodle/public&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/moodle/public&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/moodle_error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/moodle_access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aktifkan konfigurasi situs baru tersebut dan muat ulang Apache:&lt;br /&gt;
 sudo a2ensite moodle.conf&lt;br /&gt;
 sudo a2dissite 000-default.conf&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Selesaikan Instalasi Lewat Browser==&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=434</id>
		<title>Install Moodle 5.2 ubuntu 24.04-apache-mariadb-php8.4 dengan Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=434"/>
		<updated>2026-09-08T14:23:43Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE&lt;br /&gt;
 cd /var/www/html&lt;br /&gt;
 sudo git clone git://git.moodle.org/moodle.git moodle&lt;br /&gt;
 cd moodle&lt;br /&gt;
 sudo git checkout MOODLE_502_STABLE&lt;br /&gt;
&lt;br /&gt;
==Buat Direktori Data (moodledata)==&lt;br /&gt;
 sudo mkdir /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/moodledata&lt;br /&gt;
 sudo chmod -R 777 /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/html/moodle&lt;br /&gt;
 &lt;br /&gt;
==# ---------- REPOSITORY PHP 8.4 ----------==&lt;br /&gt;
 apt install -y software-properties-common ca-certificates \&lt;br /&gt;
    lsb-release apt-transport-https gnupg2 curl wget git unzip \&lt;br /&gt;
    openssl&lt;br /&gt;
&lt;br /&gt;
 add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
 apt update&lt;br /&gt;
&lt;br /&gt;
==# ---------- APACHE + PHP 8.4 ----------==&lt;br /&gt;
apt install -y apache2 \&lt;br /&gt;
    libapache2-mod-php8.4 \&lt;br /&gt;
    php8.4 \&lt;br /&gt;
    php8.4-cli \&lt;br /&gt;
    php8.4-common \&lt;br /&gt;
    php8.4-mysql \&lt;br /&gt;
    php8.4-xml \&lt;br /&gt;
    php8.4-curl \&lt;br /&gt;
    php8.4-zip \&lt;br /&gt;
    php8.4-gd \&lt;br /&gt;
    php8.4-intl \&lt;br /&gt;
    php8.4-mbstring \&lt;br /&gt;
    php8.4-soap \&lt;br /&gt;
    php8.4-bcmath \&lt;br /&gt;
    php8.4-ldap \&lt;br /&gt;
    php8.4-opcache \&lt;br /&gt;
    php8.4-readline \&lt;br /&gt;
    php8.4-apcu&lt;br /&gt;
&lt;br /&gt;
==# ---------- DATABASE ----------==&lt;br /&gt;
 apt install -y mariadb-server mariadb-client&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start mariadb&lt;br /&gt;
 sudo systemctl enable mariadb&lt;br /&gt;
&lt;br /&gt;
Secure Installation&lt;br /&gt;
 sudo mysql_secure_installation&lt;br /&gt;
 Enter current password for root (enter for none): &lt;br /&gt;
 Set root password? [Y/n] y&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-enter new password: &lt;br /&gt;
 Remove anonymous users? [Y/n] y&lt;br /&gt;
 Disallow root login remotely? [Y/n] y&lt;br /&gt;
 Remove test database and access to it? [Y/n] y&lt;br /&gt;
 Reload privilege tables now? [Y/n] y&lt;br /&gt;
&lt;br /&gt;
Kalau hanya Latihan&lt;br /&gt;
 Password root 123456&lt;br /&gt;
 # mysql -u root -p123456&lt;br /&gt;
 create database moodle;&lt;br /&gt;
 ALTER DATABASE moodle charset=utf8mb4;&lt;br /&gt;
 ALTER DATABASE moodle CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;&lt;br /&gt;
 grant ALL on moodle.* to root@localhost;&lt;br /&gt;
 grant ALL on moodle.* to moodle@localhost identified by &amp;quot;moodle&amp;quot;;&lt;br /&gt;
 grant ALL on moodle.* to moodle identified by &amp;quot;moodle&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
 service mysqld start&lt;br /&gt;
 service mysqld restart&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi Apache Virtual Host==&lt;br /&gt;
&lt;br /&gt;
 Moodle versi 5.x mengharuskan document root diarahkan ke subfolder /public demi keamanan. &lt;br /&gt;
 Buat file konfigurasi baru&lt;br /&gt;
 sudo nano /etc/apache2/sites-available/moodle.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName localhost&lt;br /&gt;
    # PENTING: Arahkan ke folder /public untuk Moodle 5.x&lt;br /&gt;
    DocumentRoot /var/www/html/moodle/public&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/moodle/public&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/moodle_error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/moodle_access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aktifkan konfigurasi situs baru tersebut dan muat ulang Apache:&lt;br /&gt;
 sudo a2ensite moodle.conf&lt;br /&gt;
 sudo a2dissite 000-default.conf&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Selesaikan Instalasi Lewat Browser==&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=433</id>
		<title>Install Moodle 5.2 ubuntu 24.04-apache-mariadb-php8.4 dengan Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=433"/>
		<updated>2026-09-08T14:18:44Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE&lt;br /&gt;
 cd /var/www/html&lt;br /&gt;
 sudo git clone git://git.moodle.org/moodle.git moodle&lt;br /&gt;
 cd moodle&lt;br /&gt;
 sudo git checkout MOODLE_502_STABLE&lt;br /&gt;
&lt;br /&gt;
==Buat Direktori Data (moodledata)==&lt;br /&gt;
 sudo mkdir /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/moodledata&lt;br /&gt;
 sudo chmod -R 777 /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/html/moodle&lt;br /&gt;
 &lt;br /&gt;
 # ---------- REPOSITORY PHP 8.4 ----------&lt;br /&gt;
apt install -y software-properties-common ca-certificates \&lt;br /&gt;
    lsb-release apt-transport-https gnupg2 curl wget git unzip \&lt;br /&gt;
    openssl&lt;br /&gt;
&lt;br /&gt;
add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
# ---------- APACHE + PHP 8.4 ----------&lt;br /&gt;
apt install -y apache2 \&lt;br /&gt;
    libapache2-mod-php8.4 \&lt;br /&gt;
    php8.4 \&lt;br /&gt;
    php8.4-cli \&lt;br /&gt;
    php8.4-common \&lt;br /&gt;
    php8.4-mysql \&lt;br /&gt;
    php8.4-xml \&lt;br /&gt;
    php8.4-curl \&lt;br /&gt;
    php8.4-zip \&lt;br /&gt;
    php8.4-gd \&lt;br /&gt;
    php8.4-intl \&lt;br /&gt;
    php8.4-mbstring \&lt;br /&gt;
    php8.4-soap \&lt;br /&gt;
    php8.4-bcmath \&lt;br /&gt;
    php8.4-ldap \&lt;br /&gt;
    php8.4-opcache \&lt;br /&gt;
    php8.4-readline \&lt;br /&gt;
    php8.4-apcu&lt;br /&gt;
&lt;br /&gt;
# ---------- DATABASE ----------&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
&lt;br /&gt;
Restart &amp;amp; Enable&lt;br /&gt;
&lt;br /&gt;
sudo systemctl start mariadb&lt;br /&gt;
sudo systemctl enable mariadb&lt;br /&gt;
Secure Installation&lt;br /&gt;
&lt;br /&gt;
sudo mysql_secure_installation&lt;br /&gt;
Enter current password for root (enter for none): &lt;br /&gt;
Set root password? [Y/n] y&lt;br /&gt;
New password: &lt;br /&gt;
Re-enter new password: &lt;br /&gt;
Remove anonymous users? [Y/n] y&lt;br /&gt;
Disallow root login remotely? [Y/n] y&lt;br /&gt;
Remove test database and access to it? [Y/n] y&lt;br /&gt;
Reload privilege tables now? [Y/n] y&lt;br /&gt;
&lt;br /&gt;
Kalau hanya Latihan&lt;br /&gt;
Password root 123456&lt;br /&gt;
&lt;br /&gt;
# mysql -u root -p123456&lt;br /&gt;
create database moodle;&lt;br /&gt;
ALTER DATABASE moodle charset=utf8mb4;&lt;br /&gt;
ALTER DATABASE moodle CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;&lt;br /&gt;
grant ALL on moodle.* to root@localhost;&lt;br /&gt;
grant ALL on moodle.* to moodle@localhost identified by &amp;quot;moodle&amp;quot;;&lt;br /&gt;
grant ALL on moodle.* to moodle identified by &amp;quot;moodle&amp;quot;;&lt;br /&gt;
exit&lt;br /&gt;
service mysqld start&lt;br /&gt;
service mysqld restart&lt;br /&gt;
&lt;br /&gt;
4. Konfigurasi Apache Virtual Host&lt;br /&gt;
&lt;br /&gt;
Moodle versi 5.x mengharuskan document root diarahkan ke subfolder /public demi keamanan. Buat file konfigurasi baru&lt;br /&gt;
&lt;br /&gt;
sudo nano /etc/apache2/sites-available/moodle.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName localhost&lt;br /&gt;
    # PENTING: Arahkan ke folder /public untuk Moodle 5.x&lt;br /&gt;
    DocumentRoot /var/www/html/moodle/public&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/moodle/public&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/moodle_error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/moodle_access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aktifkan konfigurasi situs baru tersebut dan muat ulang Apache:&lt;br /&gt;
&lt;br /&gt;
sudo a2ensite moodle.conf&lt;br /&gt;
sudo a2dissite 000-default.conf&lt;br /&gt;
sudo a2enmod rewrite&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Selesaikan Instalasi Lewat Browser&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=432</id>
		<title>Install Moodle 5.2 ubuntu 24.04-apache-mariadb-php8.4 dengan Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=432"/>
		<updated>2026-09-08T14:12:26Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE&lt;br /&gt;
 cd /var/www/html&lt;br /&gt;
 sudo git clone git://git.moodle.org/moodle.git moodle&lt;br /&gt;
 cd moodle&lt;br /&gt;
 sudo git checkout MOODLE_502_STABLE&lt;br /&gt;
&lt;br /&gt;
 Buat Direktori Data (moodledata)&lt;br /&gt;
 sudo mkdir /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/moodledata&lt;br /&gt;
 sudo chmod -R 777 /var/www/moodledata&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/html/moodle&lt;br /&gt;
 &lt;br /&gt;
 # ---------- REPOSITORY PHP 8.4 ----------&lt;br /&gt;
apt install -y software-properties-common ca-certificates \&lt;br /&gt;
    lsb-release apt-transport-https gnupg2 curl wget git unzip \&lt;br /&gt;
    openssl&lt;br /&gt;
&lt;br /&gt;
add-apt-repository ppa:ondrej/php -y&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
# ---------- APACHE + PHP 8.4 ----------&lt;br /&gt;
apt install -y apache2 \&lt;br /&gt;
    libapache2-mod-php8.4 \&lt;br /&gt;
    php8.4 \&lt;br /&gt;
    php8.4-cli \&lt;br /&gt;
    php8.4-common \&lt;br /&gt;
    php8.4-mysql \&lt;br /&gt;
    php8.4-xml \&lt;br /&gt;
    php8.4-curl \&lt;br /&gt;
    php8.4-zip \&lt;br /&gt;
    php8.4-gd \&lt;br /&gt;
    php8.4-intl \&lt;br /&gt;
    php8.4-mbstring \&lt;br /&gt;
    php8.4-soap \&lt;br /&gt;
    php8.4-bcmath \&lt;br /&gt;
    php8.4-ldap \&lt;br /&gt;
    php8.4-opcache \&lt;br /&gt;
    php8.4-readline \&lt;br /&gt;
    php8.4-apcu&lt;br /&gt;
&lt;br /&gt;
# ---------- DATABASE ----------&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=431</id>
		<title>Install Moodle 5.2 ubuntu 24.04-apache-mariadb-php8.4 dengan Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=431"/>
		<updated>2026-09-08T14:08:35Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE&lt;br /&gt;
&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
sudo git clone git://git.moodle.org/moodle.git moodle&lt;br /&gt;
cd moodle&lt;br /&gt;
sudo git checkout MOODLE_502_STABLE&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=430</id>
		<title>Install Moodle 5.2 ubuntu 24.04-apache-mariadb-php8.4 dengan Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_Moodle_5.2_ubuntu_24.04-apache-mariadb-php8.4_dengan_Git&amp;diff=430"/>
		<updated>2026-09-08T14:08:13Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE   cd /var/www/html sudo git clone git://git.moodle.org/moodle.git moodle cd moodle sudo git checkout MOODLE_502_STABLE&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Cara install Moodle 5.2 menggunakan Git dapat dilakukan dengan mengklon repositori resmi Moodle dan memilih cabang versi stabil MOODLE_502_STABLE&lt;br /&gt;
&lt;br /&gt;
 cd /var/www/html&lt;br /&gt;
sudo git clone git://git.moodle.org/moodle.git moodle&lt;br /&gt;
cd moodle&lt;br /&gt;
sudo git checkout MOODLE_502_STABLE&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_connect_mikrotik_via_cloudflare&amp;diff=429</id>
		<title>Cara connect mikrotik via cloudflare</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_connect_mikrotik_via_cloudflare&amp;diff=429"/>
		<updated>2026-09-05T11:30:57Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Langkah 2: Konfigurasi di Laptop / PC Klien (Sisi Pengguna) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Kondisi yang ada=&lt;br /&gt;
 Ada server yang sudah terinstall cloudflare dengan ip 10.10.10.10&lt;br /&gt;
 Mikrotik di IP 10.10.10.1&lt;br /&gt;
&lt;br /&gt;
=Langkah 1: Konfigurasi di Dashboard Cloudflare Zero Trust=&lt;br /&gt;
 Buka dashboard Cloudflare Zero Trust Anda.&lt;br /&gt;
 Masuk ke menu Networks &amp;gt; Tunnels, lalu pilih tunnel server Anda (10.10.10.10).&lt;br /&gt;
 Klik Edit dan buka tab Public Hostname.&lt;br /&gt;
 Klik Add a public hostname dan isi konfigurasi berikut:&lt;br /&gt;
 Subdomain: winbox (atau bebas)&lt;br /&gt;
 Domain: domain-anda.com&lt;br /&gt;
 Type: TCP&lt;br /&gt;
 URL: 10.10.10.1:8291&lt;br /&gt;
 Klik Save hostname.&lt;br /&gt;
&lt;br /&gt;
=Langkah 2: Konfigurasi di Laptop / PC Klien (Sisi Pengguna)=&lt;br /&gt;
Karena ini koneksi TCP murni, laptop yang Anda gunakan untuk membuka Winbox wajib menjalankan cloudflared sebagai client untuk menjembatani koneksi.&lt;br /&gt;
 Download cloudflared.exe untuk Windows (atau Mac/Linux sesuai OS Anda) di link berikut : https://developers.cloudflare.com/tunnel/downloads/&lt;br /&gt;
&lt;br /&gt;
 Buka Command Prompt (CMD) atau Terminal di laptop Anda, lalu jalankan perintah berikut:&lt;br /&gt;
 &#039;&#039;cloudflared access tcp --hostname domain-anda.com --listener localhost:8291&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Perintah ini akan mendengarkan (listen) port 8291 di laptop Anda dan meneruskannya ke MikroTik via Cloudflare.&lt;br /&gt;
&lt;br /&gt;
=Langkah 3: Login Melalui WinboxBuka aplikasi Winbox di laptop Anda.=&lt;br /&gt;
 Pada kolom Connect To, ketik: 10.10.10.1 atau localhost atau 127.0.0.1 (tanpa port tidak apa-apa karena default-nya sudah 8291).&lt;br /&gt;
 Masukkan Username dan Password MikroTik Anda seperti biasa.&lt;br /&gt;
 Klik Connect.&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Main_Page&amp;diff=428</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Main_Page&amp;diff=428"/>
		<updated>2026-09-05T11:29:21Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;MediaWiki has been installed.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User&#039;s Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
Melihat daftar isi WikiDbos [https://wiki.smpyppksantodonboscofakfak.sch.id/index.php/Special:AllPages klik di sini]&lt;br /&gt;
 &lt;br /&gt;
==Cara insert gambar di mediawiki dengan Edit Source==&lt;br /&gt;
 https://www.mediawiki.org/wiki/Help:Images&lt;br /&gt;
&lt;br /&gt;
==Cara format Tulisan==&lt;br /&gt;
 https://www.mediawiki.org/wiki/Help:Formatting&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_connect_mikrotik_via_cloudflare&amp;diff=427</id>
		<title>Cara connect mikrotik via cloudflare</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_connect_mikrotik_via_cloudflare&amp;diff=427"/>
		<updated>2026-09-05T11:26:49Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot;=Kondisi yang ada=  Ada server yang sudah terinstall cloudflare dengan ip 10.10.10.10  Mikrotik di IP 10.10.10.1  =Langkah 1: Konfigurasi di Dashboard Cloudflare Zero Trust=  Buka dashboard Cloudflare Zero Trust Anda.  Masuk ke menu Networks &amp;gt; Tunnels, lalu pilih tunnel server Anda (10.10.10.10).  Klik Edit dan buka tab Public Hostname.  Klik Add a public hostname dan isi konfigurasi berikut:  Subdomain: winbox (atau bebas)  Domain: domain-anda.com  Type: TCP  URL: 10.10...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Kondisi yang ada=&lt;br /&gt;
 Ada server yang sudah terinstall cloudflare dengan ip 10.10.10.10&lt;br /&gt;
 Mikrotik di IP 10.10.10.1&lt;br /&gt;
&lt;br /&gt;
=Langkah 1: Konfigurasi di Dashboard Cloudflare Zero Trust=&lt;br /&gt;
 Buka dashboard Cloudflare Zero Trust Anda.&lt;br /&gt;
 Masuk ke menu Networks &amp;gt; Tunnels, lalu pilih tunnel server Anda (10.10.10.10).&lt;br /&gt;
 Klik Edit dan buka tab Public Hostname.&lt;br /&gt;
 Klik Add a public hostname dan isi konfigurasi berikut:&lt;br /&gt;
 Subdomain: winbox (atau bebas)&lt;br /&gt;
 Domain: domain-anda.com&lt;br /&gt;
 Type: TCP&lt;br /&gt;
 URL: 10.10.10.1:8291&lt;br /&gt;
 Klik Save hostname.&lt;br /&gt;
&lt;br /&gt;
=Langkah 2: Konfigurasi di Laptop / PC Klien (Sisi Pengguna)=&lt;br /&gt;
Karena ini koneksi TCP murni, laptop yang Anda gunakan untuk membuka Winbox wajib menjalankan cloudflared sebagai client untuk menjembatani koneksi.&lt;br /&gt;
 Download cloudflared.exe untuk Windows (atau Mac/Linux sesuai OS Anda) di link berikut : https://developers.cloudflare.com/tunnel/downloads/&lt;br /&gt;
 Buka Command Prompt (CMD) atau Terminal di laptop Anda, lalu jalankan perintah berikut:&lt;br /&gt;
 cloudflared access tcp --hostname domain-anda.com --listener localhost:8291&lt;br /&gt;
 Perintah ini akan mendengarkan (listen) port 8291 di laptop Anda dan meneruskannya ke MikroTik via Cloudflare.&lt;br /&gt;
&lt;br /&gt;
=Langkah 3: Login Melalui WinboxBuka aplikasi Winbox di laptop Anda.=&lt;br /&gt;
 Pada kolom Connect To, ketik: 10.10.10.1 atau localhost atau 127.0.0.1 (tanpa port tidak apa-apa karena default-nya sudah 8291).&lt;br /&gt;
 Masukkan Username dan Password MikroTik Anda seperti biasa.&lt;br /&gt;
 Klik Connect.&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=426</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=426"/>
		<updated>2026-09-05T06:23:19Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* 4. Pastikan permission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;br /&gt;
&lt;br /&gt;
=Untuk Menjalankan sebagai server production=&lt;br /&gt;
Setelah npm run build, jalankan :&lt;br /&gt;
 sudo npm install -g serve&lt;br /&gt;
 sudo serve -s dist -l 4071&lt;br /&gt;
 &lt;br /&gt;
menggunakan serve untuk melayani folder dist.&lt;br /&gt;
&lt;br /&gt;
==1. Pastikan aplikasi sudah di-build==&lt;br /&gt;
 cd /var/www/pdf-toolkit&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&lt;br /&gt;
Pastikan:&lt;br /&gt;
&lt;br /&gt;
 ls -lah /var/www/pdf-toolkit/dist&lt;br /&gt;
&lt;br /&gt;
ada index.html.&lt;br /&gt;
&lt;br /&gt;
==2. Cari lokasi serve==&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 which serve&lt;br /&gt;
&lt;br /&gt;
Biasanya hasilnya:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/serve&lt;br /&gt;
&lt;br /&gt;
atau jika Node.js dipasang dari NodeSource, bisa saja:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/node_modules/serve/build/main.js&lt;br /&gt;
&lt;br /&gt;
Jangan menebak path-nya. Gunakan hasil which serve untuk konfigurasi service.&lt;br /&gt;
&lt;br /&gt;
==3. Buat systemd service==&lt;br /&gt;
 sudo nano /etc/systemd/system/pdf-toolkit.service&lt;br /&gt;
&lt;br /&gt;
Isi:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PDF Toolkit Web Application&lt;br /&gt;
 After=network.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=www-data&lt;br /&gt;
 Group=www-data&lt;br /&gt;
 WorkingDirectory=/var/www/pdf-toolkit&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=5&lt;br /&gt;
 Environment=NODE_ENV=production&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Jika which serve menghasilkan path berbeda, ubah bagian:&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
sesuai path tersebut.&lt;br /&gt;
&lt;br /&gt;
==4. Pastikan permission==&lt;br /&gt;
 sudo chown -R root:root /var/www/pdf-toolkit-app&lt;br /&gt;
 sudo chmod -R 755 /var/www/pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
Karena service hanya membaca file dist, www-data tetap dapat membacanya.&lt;br /&gt;
&lt;br /&gt;
==5. Reload systemd==&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Aktifkan agar otomatis saat boot:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
==6. Periksa status==&lt;br /&gt;
 sudo systemctl status pdf-toolkit --no-pager -l&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
● pdf-toolkit.service&lt;br /&gt;
   Loaded: loaded&lt;br /&gt;
   Active: active (running)&lt;br /&gt;
&lt;br /&gt;
==7. Tes port 8080==&lt;br /&gt;
 sudo ss -lntp | grep 8080&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
 curl http://127.0.0.1:8080&lt;br /&gt;
&lt;br /&gt;
Kalau berhasil, akan mendapatkan HTML aplikasi.&lt;br /&gt;
&lt;br /&gt;
==8. Tes restart server==&lt;br /&gt;
&lt;br /&gt;
Ini yang memastikan systemd benar-benar bekerja:&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status pdf-toolkit --no-pager&lt;br /&gt;
&lt;br /&gt;
Harus kembali:&lt;br /&gt;
&lt;br /&gt;
 Active: active (running)&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=425</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=425"/>
		<updated>2026-09-02T14:21:36Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Untuk Menjalankan sebagai server production */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;br /&gt;
&lt;br /&gt;
=Untuk Menjalankan sebagai server production=&lt;br /&gt;
Setelah npm run build, jalankan :&lt;br /&gt;
 sudo npm install -g serve&lt;br /&gt;
 sudo serve -s dist -l 4071&lt;br /&gt;
 &lt;br /&gt;
menggunakan serve untuk melayani folder dist.&lt;br /&gt;
&lt;br /&gt;
==1. Pastikan aplikasi sudah di-build==&lt;br /&gt;
 cd /var/www/pdf-toolkit&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&lt;br /&gt;
Pastikan:&lt;br /&gt;
&lt;br /&gt;
 ls -lah /var/www/pdf-toolkit/dist&lt;br /&gt;
&lt;br /&gt;
ada index.html.&lt;br /&gt;
&lt;br /&gt;
==2. Cari lokasi serve==&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 which serve&lt;br /&gt;
&lt;br /&gt;
Biasanya hasilnya:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/serve&lt;br /&gt;
&lt;br /&gt;
atau jika Node.js dipasang dari NodeSource, bisa saja:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/node_modules/serve/build/main.js&lt;br /&gt;
&lt;br /&gt;
Jangan menebak path-nya. Gunakan hasil which serve untuk konfigurasi service.&lt;br /&gt;
&lt;br /&gt;
==3. Buat systemd service==&lt;br /&gt;
 sudo nano /etc/systemd/system/pdf-toolkit.service&lt;br /&gt;
&lt;br /&gt;
Isi:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PDF Toolkit Web Application&lt;br /&gt;
 After=network.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=www-data&lt;br /&gt;
 Group=www-data&lt;br /&gt;
 WorkingDirectory=/var/www/pdf-toolkit&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=5&lt;br /&gt;
 Environment=NODE_ENV=production&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Jika which serve menghasilkan path berbeda, ubah bagian:&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
sesuai path tersebut.&lt;br /&gt;
&lt;br /&gt;
==4. Pastikan permission==&lt;br /&gt;
 sudo chown -R root:root /var/www/pdf-toolkit&lt;br /&gt;
 sudo chmod -R 755 /var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Karena service hanya membaca file dist, www-data tetap dapat membacanya.&lt;br /&gt;
&lt;br /&gt;
==5. Reload systemd==&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Aktifkan agar otomatis saat boot:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
==6. Periksa status==&lt;br /&gt;
 sudo systemctl status pdf-toolkit --no-pager -l&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
● pdf-toolkit.service&lt;br /&gt;
   Loaded: loaded&lt;br /&gt;
   Active: active (running)&lt;br /&gt;
&lt;br /&gt;
==7. Tes port 8080==&lt;br /&gt;
 sudo ss -lntp | grep 8080&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
 curl http://127.0.0.1:8080&lt;br /&gt;
&lt;br /&gt;
Kalau berhasil, akan mendapatkan HTML aplikasi.&lt;br /&gt;
&lt;br /&gt;
==8. Tes restart server==&lt;br /&gt;
&lt;br /&gt;
Ini yang memastikan systemd benar-benar bekerja:&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status pdf-toolkit --no-pager&lt;br /&gt;
&lt;br /&gt;
Harus kembali:&lt;br /&gt;
&lt;br /&gt;
 Active: active (running)&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=424</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=424"/>
		<updated>2026-09-02T14:18:59Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Untuk Menjalankan sebagai server production */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;br /&gt;
&lt;br /&gt;
=Untuk Menjalankan sebagai server production=&lt;br /&gt;
Setelah npm run build, jalankan :&lt;br /&gt;
 sudo npm install -g serve&lt;br /&gt;
 sudo serve -s dist -l 4071&lt;br /&gt;
 &lt;br /&gt;
menggunakan serve untuk melayani folder dist.&lt;br /&gt;
&lt;br /&gt;
1. Pastikan aplikasi sudah di-build&lt;br /&gt;
 cd /var/www/pdf-toolkit&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&lt;br /&gt;
Pastikan:&lt;br /&gt;
&lt;br /&gt;
 ls -lah /var/www/pdf-toolkit/dist&lt;br /&gt;
&lt;br /&gt;
ada index.html.&lt;br /&gt;
&lt;br /&gt;
2. Cari lokasi serve&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 which serve&lt;br /&gt;
&lt;br /&gt;
Biasanya hasilnya:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/serve&lt;br /&gt;
&lt;br /&gt;
atau jika Node.js dipasang dari NodeSource, bisa saja:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/node_modules/serve/build/main.js&lt;br /&gt;
&lt;br /&gt;
Jangan menebak path-nya. Gunakan hasil which serve untuk konfigurasi service.&lt;br /&gt;
&lt;br /&gt;
3. Buat systemd service&lt;br /&gt;
 sudo nano /etc/systemd/system/pdf-toolkit.service&lt;br /&gt;
&lt;br /&gt;
Isi:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PDF Toolkit Web Application&lt;br /&gt;
 After=network.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=www-data&lt;br /&gt;
 Group=www-data&lt;br /&gt;
 WorkingDirectory=/var/www/pdf-toolkit&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=5&lt;br /&gt;
 Environment=NODE_ENV=production&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Jika which serve menghasilkan path berbeda, ubah bagian:&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
sesuai path tersebut.&lt;br /&gt;
&lt;br /&gt;
4. Pastikan permission&lt;br /&gt;
 sudo chown -R root:root /var/www/pdf-toolkit&lt;br /&gt;
 sudo chmod -R 755 /var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Karena service hanya membaca file dist, www-data tetap dapat membacanya.&lt;br /&gt;
&lt;br /&gt;
5. Reload systemd&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Aktifkan agar otomatis saat boot:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
6. Periksa status&lt;br /&gt;
 sudo systemctl status pdf-toolkit --no-pager -l&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
● pdf-toolkit.service&lt;br /&gt;
   Loaded: loaded&lt;br /&gt;
   Active: active (running)&lt;br /&gt;
&lt;br /&gt;
7. Tes port 8080&lt;br /&gt;
sudo ss -lntp | grep 8080&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
 curl http://127.0.0.1:8080&lt;br /&gt;
&lt;br /&gt;
Kalau berhasil, akan mendapatkan HTML aplikasi.&lt;br /&gt;
&lt;br /&gt;
8. Tes restart server&lt;br /&gt;
&lt;br /&gt;
Ini yang memastikan systemd benar-benar bekerja:&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status pdf-toolkit --no-pager&lt;br /&gt;
&lt;br /&gt;
Harus kembali:&lt;br /&gt;
&lt;br /&gt;
 Active: active (running)&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=423</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=423"/>
		<updated>2026-09-02T14:16:28Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Untuk Menjalankan sebagai server production */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;br /&gt;
&lt;br /&gt;
=Untuk Menjalankan sebagai server production=&lt;br /&gt;
Setelah npm run build, jalankan :&lt;br /&gt;
 sudo npm install -g serve&lt;br /&gt;
 sudo serve -s dist -l 4071&lt;br /&gt;
 &lt;br /&gt;
menggunakan serve untuk melayani folder dist.&lt;br /&gt;
&lt;br /&gt;
1. Pastikan aplikasi sudah di-build&lt;br /&gt;
 cd /var/www/pdf-toolkit&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&lt;br /&gt;
Pastikan:&lt;br /&gt;
&lt;br /&gt;
 ls -lah /var/www/pdf-toolkit/dist&lt;br /&gt;
&lt;br /&gt;
ada index.html.&lt;br /&gt;
&lt;br /&gt;
2. Cari lokasi serve&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 which serve&lt;br /&gt;
&lt;br /&gt;
Biasanya hasilnya:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/serve&lt;br /&gt;
&lt;br /&gt;
atau jika Node.js dipasang dari NodeSource, bisa saja:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/node_modules/serve/build/main.js&lt;br /&gt;
&lt;br /&gt;
Jangan menebak path-nya. Gunakan hasil which serve untuk konfigurasi service.&lt;br /&gt;
&lt;br /&gt;
3. Buat systemd service&lt;br /&gt;
 sudo nano /etc/systemd/system/pdf-toolkit.service&lt;br /&gt;
&lt;br /&gt;
Isi:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PDF Toolkit Web Application&lt;br /&gt;
 After=network.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=www-data&lt;br /&gt;
 Group=www-data&lt;br /&gt;
&lt;br /&gt;
 WorkingDirectory=/var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
 ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=5&lt;br /&gt;
&lt;br /&gt;
 Environment=NODE_ENV=production&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Jika which serve menghasilkan path berbeda, ubah bagian:&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
sesuai path tersebut.&lt;br /&gt;
&lt;br /&gt;
4. Pastikan permission&lt;br /&gt;
sudo chown -R root:root /var/www/pdf-toolkit&lt;br /&gt;
sudo chmod -R 755 /var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Karena service hanya membaca file dist, www-data tetap dapat membacanya.&lt;br /&gt;
&lt;br /&gt;
5. Reload systemd&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Aktifkan agar otomatis saat boot:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl start pdf-toolkit&lt;br /&gt;
6. Periksa status&lt;br /&gt;
sudo systemctl status pdf-toolkit --no-pager -l&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
● pdf-toolkit.service&lt;br /&gt;
   Loaded: loaded&lt;br /&gt;
   Active: active (running)&lt;br /&gt;
7. Tes port 8080&lt;br /&gt;
sudo ss -lntp | grep 8080&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
curl http://127.0.0.1:8080&lt;br /&gt;
&lt;br /&gt;
Kalau berhasil, akan mendapatkan HTML aplikasi.&lt;br /&gt;
&lt;br /&gt;
8. Tes restart server&lt;br /&gt;
&lt;br /&gt;
Ini yang memastikan systemd benar-benar bekerja:&lt;br /&gt;
&lt;br /&gt;
sudo reboot&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status pdf-toolkit --no-pager&lt;br /&gt;
&lt;br /&gt;
Harus kembali:&lt;br /&gt;
&lt;br /&gt;
Active: active (running)&lt;br /&gt;
9. Hubungkan ke Cloudflare Tunnel&lt;br /&gt;
&lt;br /&gt;
Karena Apache tetap menggunakan:&lt;br /&gt;
&lt;br /&gt;
:80&lt;br /&gt;
&lt;br /&gt;
PD&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=422</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=422"/>
		<updated>2026-09-02T14:14:30Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Untuk Menjalankan sebagai server production */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;br /&gt;
&lt;br /&gt;
=Untuk Menjalankan sebagai server production=&lt;br /&gt;
 Setelah npm run build, jalankan :&lt;br /&gt;
 sudo npm install -g serve&lt;br /&gt;
 sudo serve -s dist -l 4071&lt;br /&gt;
 &lt;br /&gt;
menggunakan serve untuk melayani folder dist.&lt;br /&gt;
&lt;br /&gt;
1. Pastikan aplikasi sudah di-build&lt;br /&gt;
 cd /var/www/pdf-toolkit&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&lt;br /&gt;
Pastikan:&lt;br /&gt;
&lt;br /&gt;
 ls -lah /var/www/pdf-toolkit/dist&lt;br /&gt;
&lt;br /&gt;
ada index.html.&lt;br /&gt;
&lt;br /&gt;
2. Cari lokasi serve&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
 which serve&lt;br /&gt;
&lt;br /&gt;
Biasanya hasilnya:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/serve&lt;br /&gt;
&lt;br /&gt;
atau jika Node.js dipasang dari NodeSource, bisa saja:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/node_modules/serve/build/main.js&lt;br /&gt;
&lt;br /&gt;
Jangan menebak path-nya. Gunakan hasil which serve untuk konfigurasi service.&lt;br /&gt;
&lt;br /&gt;
3. Buat systemd service&lt;br /&gt;
 sudo nano /etc/systemd/system/pdf-toolkit.service&lt;br /&gt;
&lt;br /&gt;
Isi:&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=PDF Toolkit Web Application&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
&lt;br /&gt;
WorkingDirectory=/var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5&lt;br /&gt;
&lt;br /&gt;
Environment=NODE_ENV=production&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Jika which serve menghasilkan path berbeda, ubah bagian:&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
sesuai path tersebut.&lt;br /&gt;
&lt;br /&gt;
4. Pastikan permission&lt;br /&gt;
sudo chown -R root:root /var/www/pdf-toolkit&lt;br /&gt;
sudo chmod -R 755 /var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Karena service hanya membaca file dist, www-data tetap dapat membacanya.&lt;br /&gt;
&lt;br /&gt;
5. Reload systemd&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Aktifkan agar otomatis saat boot:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl start pdf-toolkit&lt;br /&gt;
6. Periksa status&lt;br /&gt;
sudo systemctl status pdf-toolkit --no-pager -l&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
● pdf-toolkit.service&lt;br /&gt;
   Loaded: loaded&lt;br /&gt;
   Active: active (running)&lt;br /&gt;
7. Tes port 8080&lt;br /&gt;
sudo ss -lntp | grep 8080&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
curl http://127.0.0.1:8080&lt;br /&gt;
&lt;br /&gt;
Kalau berhasil, akan mendapatkan HTML aplikasi.&lt;br /&gt;
&lt;br /&gt;
8. Tes restart server&lt;br /&gt;
&lt;br /&gt;
Ini yang memastikan systemd benar-benar bekerja:&lt;br /&gt;
&lt;br /&gt;
sudo reboot&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status pdf-toolkit --no-pager&lt;br /&gt;
&lt;br /&gt;
Harus kembali:&lt;br /&gt;
&lt;br /&gt;
Active: active (running)&lt;br /&gt;
9. Hubungkan ke Cloudflare Tunnel&lt;br /&gt;
&lt;br /&gt;
Karena Apache tetap menggunakan:&lt;br /&gt;
&lt;br /&gt;
:80&lt;br /&gt;
&lt;br /&gt;
PD&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_Install_ONLYOFFICE_Docker&amp;diff=421</id>
		<title>Cara Install ONLYOFFICE Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_Install_ONLYOFFICE_Docker&amp;diff=421"/>
		<updated>2026-09-02T03:59:12Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/ONLYOFFICE/Docker-CommunityServer &lt;br /&gt;
&lt;br /&gt;
cd Docker-CommunityServer&lt;br /&gt;
&lt;br /&gt;
sudo docker compose -f docker-compose.workspace.yml up -d&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_moodle_5,2_di_docker&amp;diff=420</id>
		<title>Install moodle 5,2 di docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_moodle_5,2_di_docker&amp;diff=420"/>
		<updated>2026-09-01T16:29:58Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot; 1. Install Docker and Docker Compose on Ubuntu  First, update your system packages and install Docker if you haven&amp;#039;t already:  &amp;lt;code&amp;gt;sudo apt update  sudo apt install docker.io docker-compose-v2 -y  sudo systemctl start docker  sudo systemctl enable docker&amp;lt;/code&amp;gt; 2. Create a Project Directory Make a new folder for your Moodle project and move inside it:  &amp;lt;code&amp;gt;mkdir moodle-docker  cd moodle-docker&amp;lt;/code&amp;gt; 3. Create the &amp;lt;code&amp;gt;docker-compose.yml&amp;lt;/code&amp;gt; File  Create a confi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
1. Install Docker and Docker Compose on Ubuntu&lt;br /&gt;
&lt;br /&gt;
First, update your system packages and install Docker if you haven&#039;t already:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt update&lt;br /&gt;
 sudo apt install docker.io docker-compose-v2 -y&lt;br /&gt;
 sudo systemctl start docker&lt;br /&gt;
 sudo systemctl enable docker&amp;lt;/code&amp;gt;&lt;br /&gt;
2. Create a Project Directory&lt;br /&gt;
Make a new folder for your Moodle project and move inside it:&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir moodle-docker&lt;br /&gt;
 cd moodle-docker&amp;lt;/code&amp;gt;&lt;br /&gt;
3. Create the &amp;lt;code&amp;gt;docker-compose.yml&amp;lt;/code&amp;gt; File&lt;br /&gt;
&lt;br /&gt;
Create a configuration file using a text editor like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;nano docker-compose.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;yaml&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;version: &#039;3.8&#039;&lt;br /&gt;
 &lt;br /&gt;
 services:&lt;br /&gt;
   mariadb:&lt;br /&gt;
     image: &#039;docker.io/bitnami/mariadb:11.0&#039;&lt;br /&gt;
     environment:&lt;br /&gt;
       - ALLOW_EMPTY_PASSWORD=yes&lt;br /&gt;
     volumes:&lt;br /&gt;
       - &#039;mariadb_data:/bitnami/mariadb&#039;&lt;br /&gt;
 &lt;br /&gt;
   moodle:&lt;br /&gt;
     image: &#039;docker.io/bitnami/moodle:latest&#039;&lt;br /&gt;
     ports:&lt;br /&gt;
       - &#039;8080:8080&#039;&lt;br /&gt;
       - &#039;8443:8443&#039;&lt;br /&gt;
     environment:&lt;br /&gt;
       - MOODLE_DATABASE_TYPE=mariadb&lt;br /&gt;
       - MOODLE_DATABASE_HOST=mariadb&lt;br /&gt;
       - MOODLE_DATABASE_PORT_NUMBER=3306&lt;br /&gt;
       - MOODLE_DATABASE_USER=bn_moodle&lt;br /&gt;
       - MOODLE_DATABASE_PASSWORD=bitnami&lt;br /&gt;
       - ALLOW_EMPTY_PASSWORD=yes&lt;br /&gt;
     volumes:&lt;br /&gt;
       - &#039;moodle_data:/bitnami/moodle&#039;&lt;br /&gt;
       - &#039;moodledata_data:/bitnami/moodledata&#039;&lt;br /&gt;
     depends_on:&lt;br /&gt;
       - mariadb&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   mariadb_data:&lt;br /&gt;
     driver: local&lt;br /&gt;
   moodle_data:&lt;br /&gt;
     driver: local&lt;br /&gt;
   moodledata_data:&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    driver: local&lt;br /&gt;
&amp;lt;code&amp;gt;4. Run the Container&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Start your containers in the background with Docker Compose: [1]&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_exam_browser_sendiri&amp;diff=419</id>
		<title>Cara buat exam browser sendiri</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_exam_browser_sendiri&amp;diff=419"/>
		<updated>2026-09-01T16:01:48Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://chatgpt.com/share/6a96f139-7668-83ec-8983-b64cdfa25737&lt;br /&gt;
&lt;br /&gt;
ini ringkasannya : https://chatgpt.com/share/6a96f657-c368-83ec-8b56-b10e34110032&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ExamBro DBOS =&lt;br /&gt;
&#039;&#039;&#039;ExamBro DBOS&#039;&#039;&#039; adalah aplikasi peramban ujian (&#039;&#039;exam browser&#039;&#039;) yang dikembangkan berdasarkan kode sumber &#039;&#039;&#039;Safe Exam Browser (SEB)&#039;&#039;&#039; untuk digunakan dalam sistem ujian berbasis komputer yang terintegrasi dengan &#039;&#039;&#039;Moodle&#039;&#039;&#039;. Aplikasi ini dirancang untuk membatasi akses peserta ujian agar hanya dapat mengakses halaman ujian melalui aplikasi ExamBro DBOS selama periode ujian yang telah ditentukan.&lt;br /&gt;
&lt;br /&gt;
Pengembangan aplikasi menggunakan sumber SEB untuk Windows yang berasal dari arsip &amp;lt;code&amp;gt;seb-win-refactoring-3.10.1.zip&amp;lt;/code&amp;gt;. Proses pengembangan dan kompilasi dilakukan menggunakan &#039;&#039;&#039;Visual Studio&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Latar belakang ==&lt;br /&gt;
Dalam sistem ujian berbasis Moodle, peserta umumnya dapat mengakses halaman ujian menggunakan berbagai peramban seperti Google Chrome, Microsoft Edge, atau peramban pada perangkat seluler. Untuk membatasi akses tersebut, dikembangkan mekanisme yang mengidentifikasi aplikasi ujian melalui &#039;&#039;&#039;User-Agent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
ExamBro DBOS menggunakan User-Agent khusus:&lt;br /&gt;
&lt;br /&gt;
Server Moodle memeriksa User-Agent tersebut untuk menentukan apakah permintaan berasal dari aplikasi ExamBro DBOS. &lt;br /&gt;
&lt;br /&gt;
== Pengembangan ==&lt;br /&gt;
Pengembangan dimulai dengan mengekstrak arsip sumber SEB dan membuka proyeknya menggunakan Visual Studio. Dalam proses awal, terdapat beberapa kendala ketika proyek dijalankan melalui Visual Studio maupun runtime. Pemeriksaan terhadap berkas log digunakan untuk mengetahui penyebab kesalahan tersebut. &lt;br /&gt;
&lt;br /&gt;
Salah satu bagian pengembangan adalah penyesuaian identitas aplikasi melalui User-Agent sehingga server Moodle dapat mengenali ExamBro DBOS sebagai aplikasi ujian yang diizinkan.&lt;br /&gt;
&lt;br /&gt;
Alur pengembangannya dapat digambarkan sebagai berikut:&lt;br /&gt;
&lt;br /&gt;
== Integrasi dengan Moodle ==&lt;br /&gt;
ExamBro DBOS dirancang untuk bekerja bersama Moodle sebagai server penyelenggara ujian. Pada sisi Moodle ditambahkan mekanisme pemeriksaan terhadap User-Agent aplikasi.&lt;br /&gt;
&lt;br /&gt;
Pada awal pengembangan, mode ujian dikendalikan secara manual melalui variabel:&lt;br /&gt;
&lt;br /&gt;
Kemudian mekanisme tersebut dikembangkan menjadi sistem otomatis berdasarkan jadwal ujian. &lt;br /&gt;
&lt;br /&gt;
=== Mode ujian berdasarkan waktu ===&lt;br /&gt;
Sistem dapat menentukan apakah ujian sedang berlangsung berdasarkan waktu mulai dan waktu selesai.&lt;br /&gt;
&lt;br /&gt;
Contoh konfigurasi:&lt;br /&gt;
&lt;br /&gt;
Zona waktu yang digunakan adalah &amp;lt;code&amp;gt;Asia/Jakarta&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Mekanisme tersebut menghasilkan tiga kondisi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Waktu&lt;br /&gt;
!Akses&lt;br /&gt;
|-&lt;br /&gt;
|Sebelum ujian&lt;br /&gt;
|Peramban biasa diperbolehkan&lt;br /&gt;
|-&lt;br /&gt;
|Selama ujian&lt;br /&gt;
|Hanya ExamBro DBOS yang diperbolehkan&lt;br /&gt;
|-&lt;br /&gt;
|Setelah ujian&lt;br /&gt;
|Peramban biasa diperbolehkan&lt;br /&gt;
|}&lt;br /&gt;
Dengan sistem tersebut, administrator tidak perlu mengubah status mode ujian secara manual setelah ujian selesai. &lt;br /&gt;
&lt;br /&gt;
== Validasi User-Agent ==&lt;br /&gt;
Ketika mode ujian aktif, server Moodle membaca User-Agent dari permintaan HTTP:&lt;br /&gt;
&lt;br /&gt;
Nilai tersebut kemudian dibandingkan dengan User-Agent yang telah ditentukan:&lt;br /&gt;
&lt;br /&gt;
Apabila nilainya tidak sesuai, server menjalankan fungsi pemblokiran akses. &lt;br /&gt;
&lt;br /&gt;
Dalam implementasi yang dijelaskan pada sumber, halaman penolakan menampilkan pesan:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;AKSES HANYA MELALUI APLIKASI EXAMBRO DBOS&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pembatasan akses langsung ke kuis ==&lt;br /&gt;
Selain validasi User-Agent, sistem juga dirancang untuk membatasi akses langsung menuju halaman kuis Moodle.&lt;br /&gt;
&lt;br /&gt;
Contoh URL yang menjadi perhatian adalah:&lt;br /&gt;
&lt;br /&gt;
dan:&lt;br /&gt;
&lt;br /&gt;
Ketika mode ujian aktif, permintaan menuju URL yang mengandung &amp;lt;code&amp;gt;/mod/quiz/&amp;lt;/code&amp;gt; dapat diperiksa. Jika permintaan berasal dari peramban yang tidak memiliki User-Agent ExamBro DBOS, akses ditolak. &lt;br /&gt;
&lt;br /&gt;
Mekanisme tersebut menghasilkan perilaku berikut:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Aplikasi&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Chrome&lt;br /&gt;
|Ditolak&lt;br /&gt;
|-&lt;br /&gt;
|Edge&lt;br /&gt;
|Ditolak&lt;br /&gt;
|-&lt;br /&gt;
|Peramban seluler&lt;br /&gt;
|Ditolak&lt;br /&gt;
|-&lt;br /&gt;
|ExamBro DBOS&lt;br /&gt;
|Diizinkan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Keamanan ==&lt;br /&gt;
Validasi User-Agent merupakan salah satu lapisan pengamanan yang digunakan dalam rancangan sistem. Sumber juga menyebutkan beberapa mekanisme tambahan yang dapat digunakan untuk meningkatkan keamanan.&lt;br /&gt;
&lt;br /&gt;
Mekanisme yang disebutkan meliputi:&lt;br /&gt;
&lt;br /&gt;
* pemeriksaan waktu ujian;&lt;br /&gt;
* validasi User-Agent;&lt;br /&gt;
* validasi &#039;&#039;&#039;SEB Config Key&#039;&#039;&#039;;&lt;br /&gt;
* validasi &#039;&#039;&#039;SEB Request Hash&#039;&#039;&#039;;&lt;br /&gt;
* pembatasan akses langsung ke &amp;lt;code&amp;gt;/mod/quiz/&amp;lt;/code&amp;gt;;&lt;br /&gt;
* pemblokiran peramban non-SEB;&lt;br /&gt;
* pendeteksian kemungkinan &#039;&#039;spoofing&#039;&#039; User-Agent;&lt;br /&gt;
* pembatasan terhadap penggunaan DevTools atau Inspect Element.&lt;br /&gt;
&lt;br /&gt;
Dua header SEB yang disebutkan dalam rancangan adalah:&lt;br /&gt;
&lt;br /&gt;
dan:&lt;br /&gt;
&lt;br /&gt;
Sumber menyatakan bahwa validasi Config Key dan Request Hash lebih aman dibandingkan hanya mengandalkan User-Agent. &lt;br /&gt;
&lt;br /&gt;
== Arsitektur sistem ==&lt;br /&gt;
Secara konseptual, sistem ExamBro DBOS terdiri atas dua komponen utama, yaitu aplikasi pada perangkat peserta dan server Moodle.&lt;br /&gt;
&lt;br /&gt;
== Konfigurasi ==&lt;br /&gt;
Konfigurasi utama yang dibahas dalam pengembangan meliputi:&lt;br /&gt;
&lt;br /&gt;
Jadwal dapat diubah melalui parameter &amp;lt;code&amp;gt;$exam_start&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;$exam_end&amp;lt;/code&amp;gt; pada konfigurasi server Moodle. &lt;br /&gt;
&lt;br /&gt;
== Proses penggunaan ==&lt;br /&gt;
Dalam skenario ujian, alur penggunaan sistem adalah:&lt;br /&gt;
&lt;br /&gt;
== Pengembangan lebih lanjut ==&lt;br /&gt;
Berdasarkan rancangan yang terdapat dalam sumber, pengembangan berikutnya diarahkan pada peningkatan keamanan aplikasi dan integrasi dengan Moodle. Fitur yang disebutkan antara lain pendeteksian &#039;&#039;fake Safe Exam Browser&#039;&#039;, pemblokiran DevTools, pembatasan akses langsung ke halaman kuis, serta validasi Config Key. &lt;br /&gt;
&lt;br /&gt;
== Lihat pula ==&lt;br /&gt;
&lt;br /&gt;
* Safe Exam Browser&lt;br /&gt;
* Moodle&lt;br /&gt;
* Computer-Based Test (CBT)&lt;br /&gt;
* User-Agent&lt;br /&gt;
* SEB Config Key&lt;br /&gt;
* SEB Request Hash&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Catatan:&#039;&#039;&#039; Ringkasan di atas menggambarkan rancangan dan proses yang terdapat pada teks sumber. Beberapa fitur keamanan seperti pendeteksian DevTools, &#039;&#039;spoofing&#039;&#039;, dan validasi Config Key disebut sebagai pengembangan atau rekomendasi lanjutan, sehingga tidak semuanya dapat dianggap sudah terimplementasi dalam versi yang dijelaskan.&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_exam_browser_sendiri&amp;diff=418</id>
		<title>Cara buat exam browser sendiri</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_exam_browser_sendiri&amp;diff=418"/>
		<updated>2026-09-01T15:38:32Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot;https://chatgpt.com/share/6a96f139-7668-83ec-8983-b64cdfa25737&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://chatgpt.com/share/6a96f139-7668-83ec-8983-b64cdfa25737&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_plugin_password_generator_dan_tokendi_moodle&amp;diff=417</id>
		<title>Cara buat plugin password generator dan tokendi moodle</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_plugin_password_generator_dan_tokendi_moodle&amp;diff=417"/>
		<updated>2026-09-01T15:11:21Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Replaced content with &amp;quot; Link chatgptnya :  https://chatgpt.com/share/6a96e991-4624-83ec-9692-0bb50d5b71fc&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Link chatgptnya :&lt;br /&gt;
 https://chatgpt.com/share/6a96e991-4624-83ec-9692-0bb50d5b71fc&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_plugin_password_generator_dan_tokendi_moodle&amp;diff=416</id>
		<title>Cara buat plugin password generator dan tokendi moodle</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_buat_plugin_password_generator_dan_tokendi_moodle&amp;diff=416"/>
		<updated>2026-09-01T15:11:09Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot; Link chatgptnya :  https://chatgpt.com/share/6a96e991-4624-83ec-9692-0bb50d5b71fc   Sel, 17 Mar pukul 8.05  membuat plugin Moodle versi PRO (offline) dengan: halaman pengawas auto refresh password berubah tiap 1 menit dan kirim file .zip siap install.  Saya sudah membuat &amp;#039;&amp;#039;&amp;#039;plugin Moodle PRO (offline)&amp;#039;&amp;#039;&amp;#039; sesuai yang Anda minta.  📦 &amp;#039;&amp;#039;&amp;#039;Download plugin (.zip):&amp;#039;&amp;#039;&amp;#039; ----  = Fitur Plugin = Plugin ini memiliki:  ✅ &amp;#039;&amp;#039;&amp;#039;100% Offline&amp;#039;&amp;#039;&amp;#039; (tidak ada koneksi internet)  ✅ &amp;#039;&amp;#039;&amp;#039;Pas...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Link chatgptnya :&lt;br /&gt;
 https://chatgpt.com/share/6a96e991-4624-83ec-9692-0bb50d5b71fc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sel, 17 Mar pukul 8.05&lt;br /&gt;
&lt;br /&gt;
membuat plugin Moodle versi PRO (offline) dengan: halaman pengawas auto refresh password berubah tiap 1 menit dan kirim file .zip siap install.&lt;br /&gt;
&lt;br /&gt;
Saya sudah membuat &#039;&#039;&#039;plugin Moodle PRO (offline)&#039;&#039;&#039; sesuai yang Anda minta.&lt;br /&gt;
&lt;br /&gt;
📦 &#039;&#039;&#039;Download plugin (.zip):&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Fitur Plugin =&lt;br /&gt;
Plugin ini memiliki:&lt;br /&gt;
&lt;br /&gt;
✅ &#039;&#039;&#039;100% Offline&#039;&#039;&#039; (tidak ada koneksi internet)&lt;br /&gt;
&lt;br /&gt;
✅ &#039;&#039;&#039;Password quiz berubah setiap 1 menit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
✅ &#039;&#039;&#039;Halaman monitoring untuk pengawas&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
✅ &#039;&#039;&#039;Auto refresh setiap 60 detik&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
✅ &#039;&#039;&#039;Password ditampilkan besar agar mudah dilihat&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cara Install =&lt;br /&gt;
1️⃣ Download file zip di atas&lt;br /&gt;
&lt;br /&gt;
2️⃣ Ekstrak ke folder:&lt;br /&gt;
&lt;br /&gt;
Sehingga menjadi:&lt;br /&gt;
----3️⃣ Login ke &#039;&#039;&#039;Admin Moodle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Buka:&lt;br /&gt;
&lt;br /&gt;
Klik:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Jalankan Cron Moodle =&lt;br /&gt;
Plugin bekerja melalui cron.&lt;br /&gt;
&lt;br /&gt;
Manual:&lt;br /&gt;
&lt;br /&gt;
Atau cron server:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Halaman Pengawas =&lt;br /&gt;
Pengawas bisa melihat password di:&lt;br /&gt;
&lt;br /&gt;
Contoh:&lt;br /&gt;
&lt;br /&gt;
Tampilan:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Quiz&lt;br /&gt;
!Password&lt;br /&gt;
!Open&lt;br /&gt;
!Close&lt;br /&gt;
|-&lt;br /&gt;
|Matematika CBT&lt;br /&gt;
|&#039;&#039;&#039;482193&#039;&#039;&#039;&lt;br /&gt;
|09:00&lt;br /&gt;
|10:30&lt;br /&gt;
|}&lt;br /&gt;
Halaman &#039;&#039;&#039;auto refresh tiap 60 detik&#039;&#039;&#039;.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cara Kerja =&lt;br /&gt;
Setiap &#039;&#039;&#039;1 menit&#039;&#039;&#039; plugin akan:&lt;br /&gt;
&lt;br /&gt;
# cek quiz yang &#039;&#039;&#039;sedang aktif&#039;&#039;&#039;&lt;br /&gt;
# generate password baru&lt;br /&gt;
# update password quiz&lt;br /&gt;
# tampilkan di &#039;&#039;&#039;halaman pengawas&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----✅ Jika Anda mau, saya bisa membantu membuat &#039;&#039;&#039;versi yang jauh lebih kuat untuk CBT kampus&#039;&#039;&#039;, misalnya:&lt;br /&gt;
&lt;br /&gt;
* password berubah &#039;&#039;&#039;setiap 30 detik&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mode layar proyektor (full screen)&#039;&#039;&#039; untuk ruang ujian&lt;br /&gt;
* &#039;&#039;&#039;monitor semua ruang ujian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;anti share password antar ruangan&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;dashboard pengawas real-time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plugin seperti ini biasanya dipakai untuk &#039;&#039;&#039;ujian online universitas dengan ratusan komputer&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Sel, 17 Mar pukul 10.33&lt;br /&gt;
&lt;br /&gt;
tampilan password masih beda-beda&lt;br /&gt;
&lt;br /&gt;
Berikut &#039;&#039;&#039;halaman pengawas versi layar proyektor&#039;&#039;&#039; sesuai yang Anda minta:&lt;br /&gt;
&lt;br /&gt;
Fitur:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1 token besar untuk semua quiz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;countdown besar&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mode fullscreen&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;warna berubah saat hampir habis&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;auto refresh saat token berubah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
File ini menggantikan:&lt;br /&gt;
----&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 require(&#039;../../config.php&#039;);&lt;br /&gt;
 &lt;br /&gt;
 require_login();&lt;br /&gt;
 &lt;br /&gt;
 $context = context_system::instance();&lt;br /&gt;
 require_capability(&#039;moodle/site:config&#039;, $context);&lt;br /&gt;
 &lt;br /&gt;
 $PAGE-&amp;gt;set_url(&#039;/local/quizpasswordrotatorpro/index.php&#039;);&lt;br /&gt;
 $PAGE-&amp;gt;set_pagelayout(&#039;standard&#039;);&lt;br /&gt;
 $PAGE-&amp;gt;set_title(&#039;Exam Token Monitor&#039;);&lt;br /&gt;
 $PAGE-&amp;gt;set_heading(&#039;Exam Token Monitor&#039;);&lt;br /&gt;
 &lt;br /&gt;
 echo $OUTPUT-&amp;gt;header();&lt;br /&gt;
 hanya menampilkan 1 token besar&lt;br /&gt;
 &lt;br /&gt;
 countdown besar di tengah layar&lt;br /&gt;
 &lt;br /&gt;
 mode fullscreen untuk proyektor ruang ujian&lt;br /&gt;
 &lt;br /&gt;
 warna berubah saat token hampir habis&lt;br /&gt;
 global $DB;&lt;br /&gt;
 &lt;br /&gt;
 $now = time();&lt;br /&gt;
 &lt;br /&gt;
 /* ambil 1 quiz aktif yang memiliki password */&lt;br /&gt;
 $quiz = $DB-&amp;gt;get_record_select(&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   &#039;quiz&#039;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   &amp;quot;timeopen &amp;lt; ? AND timeclose &amp;gt; ? AND password IS NOT NULL AND password &amp;lt;&amp;gt; &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   [$now, $now]&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 $token = $quiz ? $quiz-&amp;gt;password : &#039;------&#039;;&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;style&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 body{&lt;br /&gt;
     text-align:center;&lt;br /&gt;
     background:#111;&lt;br /&gt;
     color:white;&lt;br /&gt;
     font-family:Arial;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .token{&lt;br /&gt;
     font-size:150px;&lt;br /&gt;
     font-weight:bold;&lt;br /&gt;
     margin-top:80px;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .countdown{&lt;br /&gt;
     font-size:60px;&lt;br /&gt;
     margin-top:40px;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .warning{&lt;br /&gt;
     color:#ff3b3b;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .normal{&lt;br /&gt;
     color:#4caf50;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .fullscreenbtn{&lt;br /&gt;
     margin-top:40px;&lt;br /&gt;
     padding:10px 25px;&lt;br /&gt;
     font-size:20px;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/style&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;h1&amp;gt;TOKEN UJIAN&amp;lt;/h1&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div id=&amp;quot;token&amp;quot; class=&amp;quot;token&amp;quot;&amp;gt;&amp;lt;?php echo $token; ?&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;countdown&amp;quot;&amp;gt;&lt;br /&gt;
 Sisa waktu: &amp;lt;span id=&amp;quot;timer&amp;quot;&amp;gt;--&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;button class=&amp;quot;fullscreenbtn&amp;quot; onclick=&amp;quot;openFullscreen()&amp;quot;&amp;gt;Fullscreen&amp;lt;/button&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;script&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* interval token (5 menit) */&lt;br /&gt;
 var duration = 300;&lt;br /&gt;
 &lt;br /&gt;
 function updateTimer(){&lt;br /&gt;
 &lt;br /&gt;
     var now = new Date();&lt;br /&gt;
     var seconds = now.getSeconds();&lt;br /&gt;
     var minutes = now.getMinutes();&lt;br /&gt;
 &lt;br /&gt;
     var elapsed = (minutes * 60 + seconds) % duration;&lt;br /&gt;
 &lt;br /&gt;
     var remaining = duration - elapsed;&lt;br /&gt;
 &lt;br /&gt;
     document.getElementById(&amp;quot;timer&amp;quot;).innerHTML = remaining + &amp;quot; detik&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     var token = document.getElementById(&amp;quot;token&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
     if(remaining &amp;lt; 30){&lt;br /&gt;
         token.className = &amp;quot;token warning&amp;quot;;&lt;br /&gt;
     }else{&lt;br /&gt;
         token.className = &amp;quot;token normal&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     if(remaining &amp;lt;= 1){&lt;br /&gt;
         location.reload();&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 setInterval(updateTimer,1000);&lt;br /&gt;
 updateTimer();&lt;br /&gt;
 &lt;br /&gt;
 /* fullscreen mode */&lt;br /&gt;
 &lt;br /&gt;
 function openFullscreen() {&lt;br /&gt;
 &lt;br /&gt;
   var elem = document.documentElement;&lt;br /&gt;
 &lt;br /&gt;
   if (elem.requestFullscreen) {&lt;br /&gt;
     elem.requestFullscreen();&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/script&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 echo $OUTPUT-&amp;gt;footer();&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Tampilan yang Dihasilkan =&lt;br /&gt;
Di layar proyektor akan terlihat seperti ini:&lt;br /&gt;
&lt;br /&gt;
Jika waktu tinggal &#039;&#039;&#039;&amp;lt; 30 detik&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* warna token berubah &#039;&#039;&#039;merah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cara Menggunakan Mode Proyektor =&lt;br /&gt;
Buka halaman:&lt;br /&gt;
&lt;br /&gt;
Klik tombol:&lt;br /&gt;
&lt;br /&gt;
Lalu tampilkan di &#039;&#039;&#039;proyektor ruang ujian&#039;&#039;&#039;.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Tips Agar Sistem Stabil =&lt;br /&gt;
Pastikan cron Moodle tetap berjalan:&lt;br /&gt;
&lt;br /&gt;
Karena token berubah saat &#039;&#039;&#039;cron dijalankan&#039;&#039;&#039;.&lt;br /&gt;
----✅ Jika Anda mau, saya bisa membuat &#039;&#039;&#039;versi dashboard CBT yang jauh lebih canggih&#039;&#039;&#039;, misalnya:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;token berubah setiap 30 detik&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;update realtime tanpa reload&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;monitor peserta yang sudah login&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mode multi ruang ujian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;deteksi sharing token antar lab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sistem seperti ini biasa dipakai untuk &#039;&#039;&#039;CBT universitas dengan 1000+ komputer&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Sel, 17 Mar pukul 12.50&lt;br /&gt;
&lt;br /&gt;
sudah pakai script layar lebar dan 1 token, tapi tampilannya masih banyak token&lt;br /&gt;
&lt;br /&gt;
Masalahnya terlihat dari kode yang Anda kirim: ada &#039;&#039;&#039;teks yang bukan kode PHP&#039;&#039;&#039; masuk ke dalam file sehingga bisa mengganggu eksekusi halaman.&lt;br /&gt;
&lt;br /&gt;
Di bagian ini:&lt;br /&gt;
&lt;br /&gt;
Baris:&lt;br /&gt;
&lt;br /&gt;
bukan kode PHP dan harus &#039;&#039;&#039;dihapus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jika tidak dihapus, PHP bisa gagal memproses bagian setelahnya sehingga halaman tetap menampilkan &#039;&#039;&#039;tampilan lama (banyak token)&#039;&#039;&#039;.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Perbaikan yang Benar =&lt;br /&gt;
Ganti bagian awal kode menjadi seperti ini:&lt;br /&gt;
&lt;br /&gt;
Sehingga blok awal menjadi:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Setelah Memperbaiki =&lt;br /&gt;
Lakukan langkah ini:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Save file&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Purge cache Moodle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Buka:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Refresh halaman&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Hasil yang Seharusnya Muncul =&lt;br /&gt;
Halaman pengawas hanya menampilkan:&lt;br /&gt;
&lt;br /&gt;
Tanpa tabel dan tanpa banyak token.&lt;br /&gt;
----💡 Jika Anda mau, saya juga bisa membantu membuat &#039;&#039;&#039;mode proyektor CBT yang jauh lebih bagus&#039;&#039;&#039;, misalnya:&lt;br /&gt;
&lt;br /&gt;
* token &#039;&#039;&#039;di tengah layar sangat besar&#039;&#039;&#039;&lt;br /&gt;
* countdown &#039;&#039;&#039;format MM:SS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;background berubah merah saat 10 detik terakhir&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;auto fullscreen saat halaman dibuka&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;tanpa tombol fullscreen lagi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tampilan seperti ini biasanya dipakai di &#039;&#039;&#039;ruang ujian CBT universitas&#039;&#039;&#039; supaya token mudah dilihat seluruh peserta.&lt;br /&gt;
&lt;br /&gt;
Sel, 17 Mar pukul 14.29&lt;br /&gt;
&lt;br /&gt;
membuat dashboard pengawas yang lebih bagus untuk CBT hanya menampilkan 1 token besarcountdown besar di tengah layar mode fullscreen untuk proyektor ruang ujian warna berubah saat token hampir habis&lt;br /&gt;
&lt;br /&gt;
Pada kode Anda yang terakhir, ada &#039;&#039;&#039;teks penjelasan yang masih berada di dalam file PHP&#039;&#039;&#039; sehingga perlu dihapus agar dashboard tampil bersih dan stabil.&lt;br /&gt;
&lt;br /&gt;
Baris ini harus &#039;&#039;&#039;dihapus&#039;&#039;&#039; dari file:&lt;br /&gt;
&lt;br /&gt;
Setelah dibersihkan, gunakan &#039;&#039;&#039;versi dashboard pengawas CBT yang lebih profesional&#039;&#039;&#039; di bawah ini.&lt;br /&gt;
&lt;br /&gt;
Fitur:&lt;br /&gt;
&lt;br /&gt;
* 1 &#039;&#039;&#039;TOKEN BESAR di tengah layar&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;COUNTDOWN format MM:SS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AUTO FULLSCREEN&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;WARNA MERAH saat 20 detik terakhir&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AUTO REFRESH saat token berubah&#039;&#039;&#039;&lt;br /&gt;
* cocok untuk &#039;&#039;&#039;proyektor ruang ujian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ganti seluruh isi file:&lt;br /&gt;
&lt;br /&gt;
dengan kode berikut.&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 require(&#039;../../config.php&#039;);&lt;br /&gt;
 require_login();&lt;br /&gt;
 &lt;br /&gt;
 $context = context_system::instance();&lt;br /&gt;
 require_capability(&#039;moodle/site:config&#039;, $context);&lt;br /&gt;
 &lt;br /&gt;
 $PAGE-&amp;gt;set_url(&#039;/local/quizpasswordrotatorpro/index.php&#039;);&lt;br /&gt;
 $PAGE-&amp;gt;set_pagelayout(&#039;embedded&#039;);&lt;br /&gt;
 $PAGE-&amp;gt;set_title(&#039;TOKEN UJIAN CBT&#039;);&lt;br /&gt;
 $PAGE-&amp;gt;set_heading(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
 &lt;br /&gt;
 echo $OUTPUT-&amp;gt;header();&lt;br /&gt;
 &lt;br /&gt;
 global $DB;&lt;br /&gt;
 &lt;br /&gt;
 $now = time();&lt;br /&gt;
 &lt;br /&gt;
 /* ambil satu quiz aktif */&lt;br /&gt;
 $quiz = $DB-&amp;gt;get_record_select(&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   &#039;quiz&#039;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   &amp;quot;timeopen &amp;lt; ? AND timeclose &amp;gt; ? AND password &amp;lt;&amp;gt; &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   [$now,$now]&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 $token = $quiz ? $quiz-&amp;gt;password : &#039;------&#039;;&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;style&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 body{&lt;br /&gt;
     background:#0a0a0a;&lt;br /&gt;
     color:white;&lt;br /&gt;
     font-family:Arial, Helvetica, sans-serif;&lt;br /&gt;
     text-align:center;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .title{&lt;br /&gt;
     font-size:40px;&lt;br /&gt;
     margin-top:40px;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .token{&lt;br /&gt;
     font-size:200px;&lt;br /&gt;
     font-weight:bold;&lt;br /&gt;
     margin-top:80px;&lt;br /&gt;
     letter-spacing:10px;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .countdown{&lt;br /&gt;
     font-size:90px;&lt;br /&gt;
     margin-top:40px;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .green{&lt;br /&gt;
     color:#00e676;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .red{&lt;br /&gt;
     color:#ff1744;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .info{&lt;br /&gt;
     margin-top:20px;&lt;br /&gt;
     font-size:20px;&lt;br /&gt;
     color:#aaa;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/style&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;TOKEN UJIAN CBT&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div id=&amp;quot;token&amp;quot; class=&amp;quot;token green&amp;quot;&amp;gt;&amp;lt;?php echo $token ?&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;countdown&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;timer&amp;quot;&amp;gt;--:--&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;info&amp;quot;&amp;gt;&lt;br /&gt;
 Token berubah otomatis&lt;br /&gt;
 &amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;script&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 /* interval token (5 menit) */&lt;br /&gt;
 var duration = 300;&lt;br /&gt;
 &lt;br /&gt;
 function updateTimer(){&lt;br /&gt;
 &lt;br /&gt;
     var now = new Date();&lt;br /&gt;
     var seconds = now.getSeconds();&lt;br /&gt;
     var minutes = now.getMinutes();&lt;br /&gt;
 &lt;br /&gt;
     var elapsed = (minutes * 60 + seconds) % duration;&lt;br /&gt;
 &lt;br /&gt;
     var remaining = duration - elapsed;&lt;br /&gt;
 &lt;br /&gt;
     var m = Math.floor(remaining / 60);&lt;br /&gt;
     var s = remaining % 60;&lt;br /&gt;
 &lt;br /&gt;
     if(s &amp;lt; 10){&lt;br /&gt;
         s = &amp;quot;0&amp;quot;+s;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     document.getElementById(&amp;quot;timer&amp;quot;).innerHTML = m + &amp;quot;:&amp;quot; + s;&lt;br /&gt;
 &lt;br /&gt;
     var token = document.getElementById(&amp;quot;token&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
     if(remaining &amp;lt;= 20){&lt;br /&gt;
         token.className = &amp;quot;token red&amp;quot;;&lt;br /&gt;
     }else{&lt;br /&gt;
         token.className = &amp;quot;token green&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     if(remaining &amp;lt;= 1){&lt;br /&gt;
         location.reload();&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 setInterval(updateTimer,1000);&lt;br /&gt;
 updateTimer();&lt;br /&gt;
 &lt;br /&gt;
 /* auto fullscreen */&lt;br /&gt;
 &lt;br /&gt;
 document.documentElement.requestFullscreen?.();&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/script&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 echo $OUTPUT-&amp;gt;footer();&amp;lt;/code&amp;gt;&lt;br /&gt;
----Hasil dashboard di proyektor akan seperti ini:&lt;br /&gt;
&lt;br /&gt;
Ketika waktu tinggal &#039;&#039;&#039;20 detik&#039;&#039;&#039;, token berubah &#039;&#039;&#039;merah&#039;&#039;&#039;.&lt;br /&gt;
----Tips untuk ruang ujian CBT:&lt;br /&gt;
&lt;br /&gt;
# buka halaman ini di komputer pengawas&lt;br /&gt;
# tekan &#039;&#039;&#039;F11&#039;&#039;&#039; atau fullscreen otomatis aktif&lt;br /&gt;
# tampilkan di &#039;&#039;&#039;proyektor ruang ujian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----Jika Anda mau, saya juga bisa membantu membuat &#039;&#039;&#039;versi dashboard CBT yang jauh lebih canggih&#039;&#039;&#039;, misalnya:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;token berubah tiap 30 detik&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;tanpa refresh halaman&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;animasi countdown besar&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;monitor jumlah peserta yang sudah login&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;deteksi jika token dibagikan antar ruang&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Biasanya sistem seperti ini dipakai untuk &#039;&#039;&#039;CBT sekolah / kampus dengan 300-1000 komputer&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=415</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=415"/>
		<updated>2026-08-31T17:59:58Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Step 4 – Install FreePBX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;br /&gt;
 sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
==Step 1 – Install Required Dependencies==&lt;br /&gt;
Before starting, update your package index and enable the Universe repository.&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository universe -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
Asterisk requires libraries like libxml2-dev and libssl-dev and git package for several build scripts and development workflows. You can install all required dependencies, development libraries, and build tools:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sox pkg-config libedit-dev unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y&lt;br /&gt;
Once all packages installed successfully, you can proceed with the installation.&lt;br /&gt;
&lt;br /&gt;
==Step 2 – Install Asterisk==&lt;br /&gt;
First, download the latest version of Asterisk from the Asterisk official website using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&lt;br /&gt;
Once the download is completed, extract the downloaded tar package file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
Next, use the cd command to change the directory to the extracted directory and install the required dependencies with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd asterisk-20.*/&lt;br /&gt;
 sudo contrib/scripts/get_mp3_source.sh &lt;br /&gt;
 sudo contrib/scripts/install_prereq install&lt;br /&gt;
Next, run the following configure script to configure Asterisk:&lt;br /&gt;
&lt;br /&gt;
 sudo ./configure&lt;br /&gt;
The configure script prepares the source code for your Ubuntu environment and Linux kernel.&lt;br /&gt;
&lt;br /&gt;
Next, set the menu options with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make menuselect&lt;br /&gt;
Before continuing, you can save a menuselect copy of your selected build options. This is useful when deploying newer versions of Asterisk later.&lt;br /&gt;
&lt;br /&gt;
You can use the Arrow key to navigate and the Enter key to select.&lt;br /&gt;
&lt;br /&gt;
 Enable required add-ons:&lt;br /&gt;
 Enable Core Sound Packages&lt;br /&gt;
 Enable MOH packages&lt;br /&gt;
 Enable Extra Sound Packages&lt;br /&gt;
&lt;br /&gt;
Once all the components are installed, build Asterisk with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make -j2&lt;br /&gt;
Next, install Asterisk using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make install&lt;br /&gt;
 &lt;br /&gt;
Next, install configs and samples using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make samples&lt;br /&gt;
 sudo make config&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
==Step 3 – Configure Asterisk==&lt;br /&gt;
Running Asterisk as the root user poses a major security risk so never run Asterisk as root.&lt;br /&gt;
&lt;br /&gt;
You must create a separate Asterisk user and group. You can create them with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo groupadd asterisk&lt;br /&gt;
 sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
Next, add some required users to the Asterisk group with the following command:&lt;br /&gt;
 sudo usermod -aG audio,dialout asterisk&lt;br /&gt;
Next, set proper permissions and ownership using the following command:&lt;br /&gt;
 sudo chown -R asterisk:asterisk /etc/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /usr/lib/asterisk&lt;br /&gt;
Next, edit the /etc/default/asterisk file and set the asterisk user as a default user:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/asterisk&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
 AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
Save and close the file, then edit the Asterisk default configuration file and define the “run as” user and group:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/asterisk/asterisk.conf&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 runuser = asterisk ; The user to run as.&lt;br /&gt;
 rungroup = asterisk ; The group to run as.&lt;br /&gt;
Save and close the file, then restart the Asterisk service and enable it to start at system reboot with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart asterisk&lt;br /&gt;
 sudo systemctl enable asterisk&lt;br /&gt;
Next, verify the status of the Asterisk service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
In some cases, you should get the following error:&lt;br /&gt;
&lt;br /&gt;
 radcli: rc_read_config: rc_read_config: can&#039;t open /etc/radiusclient-ng/radiusclient.conf: No such &lt;br /&gt;
file or directory&lt;br /&gt;
You can resolve this error using the following commands: (bisa dilewati)&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; &lt;br /&gt;
/etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
Next, start the Asterisk service again with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start asterisk&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
Check the installed Asterisk version:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -V&lt;br /&gt;
Review the installation details carefully before moving forward.&lt;br /&gt;
&lt;br /&gt;
Next, connect to the Asterisk CLI with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -rvv&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
 Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.&lt;br /&gt;
Created by Mark Spencer &amp;lt;markster@digium.com&amp;gt;&lt;br /&gt;
Asterisk comes with ABSOLUTELY NO WARRANTY; type &#039;core show warranty&#039; for details.&lt;br /&gt;
This is free software, with components licensed under the GNU General Public&lt;br /&gt;
License version 2 and other licenses; you are welcome to redistribute it under&lt;br /&gt;
certain conditions. Type &#039;core show license&#039; for details.&lt;br /&gt;
Running as user &#039;asterisk&#039;&lt;br /&gt;
Running under group &#039;asterisk&#039;&lt;br /&gt;
Connected to Asterisk 22.4.0 currently running on ubuntu2404 (pid = 89531)&lt;br /&gt;
Exit out of the CLI type:&lt;br /&gt;
&lt;br /&gt;
 Exit&lt;br /&gt;
&lt;br /&gt;
==Step 4 – Install FreePBX==&lt;br /&gt;
Before installing FreePBX, configure the firewall to allow web access, SIP signaling, and RTP traffic required by Asterisk. Web services such as HTTP and HTTPS use the TCP protocol, while SIP and RTP communications rely primarily on UDP ports for real-time voice transmission.&lt;br /&gt;
&lt;br /&gt;
Asterisk requires dedicated SIP ports for call signaling and a dedicated UDP port range for RTP audio streams. Opening the correct ports ensures that extensions, SIP trunks, and VoIP calls can connect and transmit audio properly.&lt;br /&gt;
&lt;br /&gt;
Run the following commands to allow the required traffic through UFW:&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow 22/tcp&lt;br /&gt;
 sudo ufw allow 80/tcp&lt;br /&gt;
 sudo ufw allow 443/tcp&lt;br /&gt;
 sudo ufw allow 5060/udp&lt;br /&gt;
 sudo ufw allow 5061/tcp&lt;br /&gt;
 sudo ufw allow 10000:20000/udp&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
Next, install the Apache, MariaDB, PHP and other required packages with the following command. (Minimal PHP.8.2)&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y&lt;br /&gt;
Once all the packages are installed, download the latest version of FreePBX using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz&lt;br /&gt;
Once downloaded, extract the downloaded tar file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf freepbx-17.0-latest.tgz&lt;br /&gt;
Next, change the directory to the extracted directory and install the Node.js package with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd freepbx&lt;br /&gt;
 sudo apt-get install nodejs npm -y&lt;br /&gt;
Next, set the required permissions with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo ./install -n&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
Setting specific permissions...&lt;br /&gt;
30690 [============================]&lt;br /&gt;
Finished setting permissions&lt;br /&gt;
Generating default configurations...&lt;br /&gt;
Finished generating default configurations&lt;br /&gt;
You have successfully installed FreePBX&lt;br /&gt;
Next, install the pm2 package with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo fwconsole ma install pm2&lt;br /&gt;
Next, change the Apache user to Asterisk and turn on the AllowOverride option with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
 sudo sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
Next, set upload_max_filesize to php.ini file with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/apache2/php.ini&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/cli/php.ini&lt;br /&gt;
Next, enable the Apache rewrite module and restart the Apache service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
After installation, you can use the FreePBX interface to search for extensions, modules, and trunks. The FreePBX dashboard provides the simplest way to manage Asterisk from a browser.&lt;br /&gt;
&lt;br /&gt;
==Step 5 – Access FreePBX==&lt;br /&gt;
Now, open your web browser and access the FreePBX web interface using the URL http://your-server-ip/admin. You will be redirected to the Admin user creation page:&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=414</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=414"/>
		<updated>2026-08-31T17:58:42Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;br /&gt;
 sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
==Step 1 – Install Required Dependencies==&lt;br /&gt;
Before starting, update your package index and enable the Universe repository.&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository universe -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
Asterisk requires libraries like libxml2-dev and libssl-dev and git package for several build scripts and development workflows. You can install all required dependencies, development libraries, and build tools:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sox pkg-config libedit-dev unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y&lt;br /&gt;
Once all packages installed successfully, you can proceed with the installation.&lt;br /&gt;
&lt;br /&gt;
==Step 2 – Install Asterisk==&lt;br /&gt;
First, download the latest version of Asterisk from the Asterisk official website using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&lt;br /&gt;
Once the download is completed, extract the downloaded tar package file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
Next, use the cd command to change the directory to the extracted directory and install the required dependencies with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd asterisk-20.*/&lt;br /&gt;
 sudo contrib/scripts/get_mp3_source.sh &lt;br /&gt;
 sudo contrib/scripts/install_prereq install&lt;br /&gt;
Next, run the following configure script to configure Asterisk:&lt;br /&gt;
&lt;br /&gt;
 sudo ./configure&lt;br /&gt;
The configure script prepares the source code for your Ubuntu environment and Linux kernel.&lt;br /&gt;
&lt;br /&gt;
Next, set the menu options with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make menuselect&lt;br /&gt;
Before continuing, you can save a menuselect copy of your selected build options. This is useful when deploying newer versions of Asterisk later.&lt;br /&gt;
&lt;br /&gt;
You can use the Arrow key to navigate and the Enter key to select.&lt;br /&gt;
&lt;br /&gt;
 Enable required add-ons:&lt;br /&gt;
 Enable Core Sound Packages&lt;br /&gt;
 Enable MOH packages&lt;br /&gt;
 Enable Extra Sound Packages&lt;br /&gt;
&lt;br /&gt;
Once all the components are installed, build Asterisk with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make -j2&lt;br /&gt;
Next, install Asterisk using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make install&lt;br /&gt;
 &lt;br /&gt;
Next, install configs and samples using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make samples&lt;br /&gt;
 sudo make config&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
==Step 3 – Configure Asterisk==&lt;br /&gt;
Running Asterisk as the root user poses a major security risk so never run Asterisk as root.&lt;br /&gt;
&lt;br /&gt;
You must create a separate Asterisk user and group. You can create them with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo groupadd asterisk&lt;br /&gt;
 sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
Next, add some required users to the Asterisk group with the following command:&lt;br /&gt;
 sudo usermod -aG audio,dialout asterisk&lt;br /&gt;
Next, set proper permissions and ownership using the following command:&lt;br /&gt;
 sudo chown -R asterisk:asterisk /etc/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /usr/lib/asterisk&lt;br /&gt;
Next, edit the /etc/default/asterisk file and set the asterisk user as a default user:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/asterisk&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
 AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
Save and close the file, then edit the Asterisk default configuration file and define the “run as” user and group:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/asterisk/asterisk.conf&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 runuser = asterisk ; The user to run as.&lt;br /&gt;
 rungroup = asterisk ; The group to run as.&lt;br /&gt;
Save and close the file, then restart the Asterisk service and enable it to start at system reboot with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart asterisk&lt;br /&gt;
 sudo systemctl enable asterisk&lt;br /&gt;
Next, verify the status of the Asterisk service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
In some cases, you should get the following error:&lt;br /&gt;
&lt;br /&gt;
 radcli: rc_read_config: rc_read_config: can&#039;t open /etc/radiusclient-ng/radiusclient.conf: No such &lt;br /&gt;
file or directory&lt;br /&gt;
You can resolve this error using the following commands: (bisa dilewati)&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; &lt;br /&gt;
/etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
Next, start the Asterisk service again with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start asterisk&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
Check the installed Asterisk version:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -V&lt;br /&gt;
Review the installation details carefully before moving forward.&lt;br /&gt;
&lt;br /&gt;
Next, connect to the Asterisk CLI with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -rvv&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
 Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.&lt;br /&gt;
Created by Mark Spencer &amp;lt;markster@digium.com&amp;gt;&lt;br /&gt;
Asterisk comes with ABSOLUTELY NO WARRANTY; type &#039;core show warranty&#039; for details.&lt;br /&gt;
This is free software, with components licensed under the GNU General Public&lt;br /&gt;
License version 2 and other licenses; you are welcome to redistribute it under&lt;br /&gt;
certain conditions. Type &#039;core show license&#039; for details.&lt;br /&gt;
Running as user &#039;asterisk&#039;&lt;br /&gt;
Running under group &#039;asterisk&#039;&lt;br /&gt;
Connected to Asterisk 22.4.0 currently running on ubuntu2404 (pid = 89531)&lt;br /&gt;
Exit out of the CLI type:&lt;br /&gt;
&lt;br /&gt;
 Exit&lt;br /&gt;
&lt;br /&gt;
==Step 4 – Install FreePBX==&lt;br /&gt;
Before installing FreePBX, configure the firewall to allow web access, SIP signaling, and RTP traffic required by Asterisk. Web services such as HTTP and HTTPS use the TCP protocol, while SIP and RTP communications rely primarily on UDP ports for real-time voice transmission.&lt;br /&gt;
&lt;br /&gt;
Asterisk requires dedicated SIP ports for call signaling and a dedicated UDP port range for RTP audio streams. Opening the correct ports ensures that extensions, SIP trunks, and VoIP calls can connect and transmit audio properly.&lt;br /&gt;
&lt;br /&gt;
Run the following commands to allow the required traffic through UFW:&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow 22/tcp&lt;br /&gt;
 sudo ufw allow 80/tcp&lt;br /&gt;
 sudo ufw allow 443/tcp&lt;br /&gt;
 sudo ufw allow 5060/udp&lt;br /&gt;
 sudo ufw allow 5061/tcp&lt;br /&gt;
 sudo ufw allow 10000:20000/udp&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
Next, install the Apache, MariaDB, PHP and other required packages with the following command.&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y&lt;br /&gt;
Once all the packages are installed, download the latest version of FreePBX using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz&lt;br /&gt;
Once downloaded, extract the downloaded tar file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf freepbx-17.0-latest.tgz&lt;br /&gt;
Next, change the directory to the extracted directory and install the Node.js package with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd freepbx&lt;br /&gt;
 sudo apt-get install nodejs npm -y&lt;br /&gt;
Next, set the required permissions with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo ./install -n&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
Setting specific permissions...&lt;br /&gt;
30690 [============================]&lt;br /&gt;
Finished setting permissions&lt;br /&gt;
Generating default configurations...&lt;br /&gt;
Finished generating default configurations&lt;br /&gt;
You have successfully installed FreePBX&lt;br /&gt;
Next, install the pm2 package with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo fwconsole ma install pm2&lt;br /&gt;
Next, change the Apache user to Asterisk and turn on the AllowOverride option with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
 sudo sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
Next, set upload_max_filesize to php.ini file with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/apache2/php.ini&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/cli/php.ini&lt;br /&gt;
Next, enable the Apache rewrite module and restart the Apache service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
After installation, you can use the FreePBX interface to search for extensions, modules, and trunks. The FreePBX dashboard provides the simplest way to manage Asterisk from a browser.&lt;br /&gt;
&lt;br /&gt;
==Step 5 – Access FreePBX==&lt;br /&gt;
Now, open your web browser and access the FreePBX web interface using the URL http://your-server-ip/admin. You will be redirected to the Admin user creation page:&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=413</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=413"/>
		<updated>2026-08-31T17:58:09Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;br /&gt;
 sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
==Step 1 – Install Required Dependencies==&lt;br /&gt;
Before starting, update your package index and enable the Universe repository.&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository universe -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
Asterisk requires libraries like libxml2-dev and libssl-dev and git package for several build scripts and development workflows. You can install all required dependencies, development libraries, and build tools:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sox pkg-config libedit-dev unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y&lt;br /&gt;
Once all packages installed successfully, you can proceed with the installation.&lt;br /&gt;
&lt;br /&gt;
==Step 2 – Install Asterisk==&lt;br /&gt;
First, download the latest version of Asterisk from the Asterisk official website using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&lt;br /&gt;
Once the download is completed, extract the downloaded tar package file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
Next, use the cd command to change the directory to the extracted directory and install the required dependencies with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd asterisk-20.*/&lt;br /&gt;
 sudo contrib/scripts/get_mp3_source.sh &lt;br /&gt;
 sudo contrib/scripts/install_prereq install&lt;br /&gt;
Next, run the following configure script to configure Asterisk:&lt;br /&gt;
&lt;br /&gt;
 sudo ./configure&lt;br /&gt;
The configure script prepares the source code for your Ubuntu environment and Linux kernel.&lt;br /&gt;
&lt;br /&gt;
Next, set the menu options with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make menuselect&lt;br /&gt;
Before continuing, you can save a menuselect copy of your selected build options. This is useful when deploying newer versions of Asterisk later.&lt;br /&gt;
&lt;br /&gt;
You can use the Arrow key to navigate and the Enter key to select.&lt;br /&gt;
&lt;br /&gt;
 Enable required add-ons:&lt;br /&gt;
 Enable Core Sound Packages&lt;br /&gt;
 Enable MOH packages&lt;br /&gt;
 Enable Extra Sound Packages&lt;br /&gt;
&lt;br /&gt;
Once all the components are installed, build Asterisk with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make -j2&lt;br /&gt;
Next, install Asterisk using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make install&lt;br /&gt;
 &lt;br /&gt;
Next, install configs and samples using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make samples&lt;br /&gt;
 sudo make config&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
==Step 3 – Configure Asterisk==&lt;br /&gt;
Running Asterisk as the root user poses a major security risk so never run Asterisk as root.&lt;br /&gt;
&lt;br /&gt;
You must create a separate Asterisk user and group. You can create them with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo groupadd asterisk&lt;br /&gt;
 sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
Next, add some required users to the Asterisk group with the following command:&lt;br /&gt;
 sudo usermod -aG audio,dialout asterisk&lt;br /&gt;
Next, set proper permissions and ownership using the following command:&lt;br /&gt;
 sudo chown -R asterisk:asterisk /etc/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /usr/lib/asterisk&lt;br /&gt;
Next, edit the /etc/default/asterisk file and set the asterisk user as a default user:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/asterisk&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
 AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
Save and close the file, then edit the Asterisk default configuration file and define the “run as” user and group:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/asterisk/asterisk.conf&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 runuser = asterisk ; The user to run as.&lt;br /&gt;
 rungroup = asterisk ; The group to run as.&lt;br /&gt;
Save and close the file, then restart the Asterisk service and enable it to start at system reboot with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart asterisk&lt;br /&gt;
 sudo systemctl enable asterisk&lt;br /&gt;
Next, verify the status of the Asterisk service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
In some cases, you should get the following error:&lt;br /&gt;
&lt;br /&gt;
 radcli: rc_read_config: rc_read_config: can&#039;t open /etc/radiusclient-ng/radiusclient.conf: No such &lt;br /&gt;
file or directory&lt;br /&gt;
You can resolve this error using the following commands: (bisa dilewati)&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; &lt;br /&gt;
/etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
Next, start the Asterisk service again with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start asterisk&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
Check the installed Asterisk version:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -V&lt;br /&gt;
Review the installation details carefully before moving forward.&lt;br /&gt;
&lt;br /&gt;
Next, connect to the Asterisk CLI with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -rvv&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
 Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.&lt;br /&gt;
Created by Mark Spencer &amp;lt;markster@digium.com&amp;gt;&lt;br /&gt;
Asterisk comes with ABSOLUTELY NO WARRANTY; type &#039;core show warranty&#039; for details.&lt;br /&gt;
This is free software, with components licensed under the GNU General Public&lt;br /&gt;
License version 2 and other licenses; you are welcome to redistribute it under&lt;br /&gt;
certain conditions. Type &#039;core show license&#039; for details.&lt;br /&gt;
=========================================================================&lt;br /&gt;
Running as user &#039;asterisk&#039;&lt;br /&gt;
Running under group &#039;asterisk&#039;&lt;br /&gt;
Connected to Asterisk 22.4.0 currently running on ubuntu2404 (pid = 89531)&lt;br /&gt;
Exit out of the CLI type:&lt;br /&gt;
&lt;br /&gt;
 Exit&lt;br /&gt;
==Step 4 – Install FreePBX==&lt;br /&gt;
Before installing FreePBX, configure the firewall to allow web access, SIP signaling, and RTP traffic required by Asterisk. Web services such as HTTP and HTTPS use the TCP protocol, while SIP and RTP communications rely primarily on UDP ports for real-time voice transmission.&lt;br /&gt;
&lt;br /&gt;
Asterisk requires dedicated SIP ports for call signaling and a dedicated UDP port range for RTP audio streams. Opening the correct ports ensures that extensions, SIP trunks, and VoIP calls can connect and transmit audio properly.&lt;br /&gt;
&lt;br /&gt;
Run the following commands to allow the required traffic through UFW:&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow 22/tcp&lt;br /&gt;
 sudo ufw allow 80/tcp&lt;br /&gt;
 sudo ufw allow 443/tcp&lt;br /&gt;
 sudo ufw allow 5060/udp&lt;br /&gt;
 sudo ufw allow 5061/tcp&lt;br /&gt;
 sudo ufw allow 10000:20000/udp&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
Next, install the Apache, MariaDB, PHP and other required packages with the following command.&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y&lt;br /&gt;
Once all the packages are installed, download the latest version of FreePBX using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz&lt;br /&gt;
Once downloaded, extract the downloaded tar file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf freepbx-17.0-latest.tgz&lt;br /&gt;
Next, change the directory to the extracted directory and install the Node.js package with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd freepbx&lt;br /&gt;
 sudo apt-get install nodejs npm -y&lt;br /&gt;
Next, set the required permissions with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo ./install -n&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
Setting specific permissions...&lt;br /&gt;
30690 [============================]&lt;br /&gt;
Finished setting permissions&lt;br /&gt;
Generating default configurations...&lt;br /&gt;
Finished generating default configurations&lt;br /&gt;
You have successfully installed FreePBX&lt;br /&gt;
Next, install the pm2 package with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo fwconsole ma install pm2&lt;br /&gt;
Next, change the Apache user to Asterisk and turn on the AllowOverride option with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
 sudo sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
Next, set upload_max_filesize to php.ini file with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/apache2/php.ini&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/cli/php.ini&lt;br /&gt;
Next, enable the Apache rewrite module and restart the Apache service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
After installation, you can use the FreePBX interface to search for extensions, modules, and trunks. The FreePBX dashboard provides the simplest way to manage Asterisk from a browser.&lt;br /&gt;
&lt;br /&gt;
==Step 5 – Access FreePBX==&lt;br /&gt;
Now, open your web browser and access the FreePBX web interface using the URL http://your-server-ip/admin. You will be redirected to the Admin user creation page:&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=412</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=412"/>
		<updated>2026-08-31T17:56:07Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* Step 1 – Install Required Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;br /&gt;
 sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
==Step 1 – Install Required Dependencies==&lt;br /&gt;
Before starting, update your package index and enable the Universe repository.&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository universe -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
Asterisk requires libraries like libxml2-dev and libssl-dev and git package for several build scripts and development workflows. You can install all required dependencies, development libraries, and build tools:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sox pkg-config libedit-dev unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y&lt;br /&gt;
Once all packages installed successfully, you can proceed with the installation.&lt;br /&gt;
&lt;br /&gt;
==Step 2 – Install Asterisk==&lt;br /&gt;
 First, download the latest version of Asterisk from the Asterisk official website using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&lt;br /&gt;
 Once the download is completed, extract the downloaded tar package file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
 Next, use the cd command to change the directory to the extracted directory and install the required dependencies with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd asterisk-20.*/&lt;br /&gt;
 sudo contrib/scripts/get_mp3_source.sh &lt;br /&gt;
 sudo contrib/scripts/install_prereq install&lt;br /&gt;
 Next, run the following configure script to configure Asterisk:&lt;br /&gt;
&lt;br /&gt;
 sudo ./configure&lt;br /&gt;
 The configure script prepares the source code for your Ubuntu environment and Linux kernel.&lt;br /&gt;
&lt;br /&gt;
 Next, set the menu options with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make menuselect&lt;br /&gt;
 Before continuing, you can save a menuselect copy of your selected build options. This is useful when deploying newer versions of Asterisk later.&lt;br /&gt;
&lt;br /&gt;
 You can use the Arrow key to navigate and the Enter key to select.&lt;br /&gt;
&lt;br /&gt;
 Enable required add-ons:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Enable Core Sound Packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Enable MOH packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Enable Extra Sound Packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once all the components are installed, build Asterisk with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make -j2&lt;br /&gt;
Next, install Asterisk using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make install&lt;br /&gt;
 &lt;br /&gt;
Next, install configs and samples using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make samples&lt;br /&gt;
 sudo make config&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
==Step 3 – Configure Asterisk==&lt;br /&gt;
Running Asterisk as the root user poses a major security risk so never run Asterisk as root.&lt;br /&gt;
&lt;br /&gt;
You must create a separate Asterisk user and group. You can create them with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo groupadd asterisk&lt;br /&gt;
 sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
Next, add some required users to the Asterisk group with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG audio,dialout asterisk&lt;br /&gt;
Next, set proper permissions and ownership using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R asterisk:asterisk /etc/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /usr/lib/asterisk&lt;br /&gt;
Next, edit the /etc/default/asterisk file and set the asterisk user as a default user:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/asterisk&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
 AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
Save and close the file, then edit the Asterisk default configuration file and define the “run as” user and group:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/asterisk/asterisk.conf&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 runuser = asterisk ; The user to run as.&lt;br /&gt;
 rungroup = asterisk ; The group to run as.&lt;br /&gt;
Save and close the file, then restart the Asterisk service and enable it to start at system reboot with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart asterisk&lt;br /&gt;
 sudo systemctl enable asterisk&lt;br /&gt;
Next, verify the status of the Asterisk service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
In some cases, you should get the following error:&lt;br /&gt;
&lt;br /&gt;
 radcli: rc_read_config: rc_read_config: can&#039;t open /etc/radiusclient-ng/radiusclient.conf: No such &lt;br /&gt;
file or directory&lt;br /&gt;
You can resolve this error using the following commands: (bisa dilewati)&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; &lt;br /&gt;
/etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
Next, start the Asterisk service again with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start asterisk&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
Check the installed Asterisk version:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -V&lt;br /&gt;
Review the installation details carefully before moving forward.&lt;br /&gt;
&lt;br /&gt;
Next, connect to the Asterisk CLI with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -rvv&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
 Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.&lt;br /&gt;
Created by Mark Spencer &amp;lt;markster@digium.com&amp;gt;&lt;br /&gt;
Asterisk comes with ABSOLUTELY NO WARRANTY; type &#039;core show warranty&#039; for details.&lt;br /&gt;
This is free software, with components licensed under the GNU General Public&lt;br /&gt;
License version 2 and other licenses; you are welcome to redistribute it under&lt;br /&gt;
certain conditions. Type &#039;core show license&#039; for details.&lt;br /&gt;
=========================================================================&lt;br /&gt;
Running as user &#039;asterisk&#039;&lt;br /&gt;
Running under group &#039;asterisk&#039;&lt;br /&gt;
Connected to Asterisk 22.4.0 currently running on ubuntu2404 (pid = 89531)&lt;br /&gt;
Exit out of the CLI type:&lt;br /&gt;
&lt;br /&gt;
 Exit&lt;br /&gt;
==Step 4 – Install FreePBX==&lt;br /&gt;
Before installing FreePBX, configure the firewall to allow web access, SIP signaling, and RTP traffic required by Asterisk. Web services such as HTTP and HTTPS use the TCP protocol, while SIP and RTP communications rely primarily on UDP ports for real-time voice transmission.&lt;br /&gt;
&lt;br /&gt;
Asterisk requires dedicated SIP ports for call signaling and a dedicated UDP port range for RTP audio streams. Opening the correct ports ensures that extensions, SIP trunks, and VoIP calls can connect and transmit audio properly.&lt;br /&gt;
&lt;br /&gt;
Run the following commands to allow the required traffic through UFW:&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow 22/tcp&lt;br /&gt;
 sudo ufw allow 80/tcp&lt;br /&gt;
 sudo ufw allow 443/tcp&lt;br /&gt;
 sudo ufw allow 5060/udp&lt;br /&gt;
 sudo ufw allow 5061/tcp&lt;br /&gt;
 sudo ufw allow 10000:20000/udp&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
Next, install the Apache, MariaDB, PHP and other required packages with the following command.&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y&lt;br /&gt;
Once all the packages are installed, download the latest version of FreePBX using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz&lt;br /&gt;
Once downloaded, extract the downloaded tar file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf freepbx-17.0-latest.tgz&lt;br /&gt;
Next, change the directory to the extracted directory and install the Node.js package with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd freepbx&lt;br /&gt;
 sudo apt-get install nodejs npm -y&lt;br /&gt;
Next, set the required permissions with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo ./install -n&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
Setting specific permissions...&lt;br /&gt;
30690 [============================]&lt;br /&gt;
Finished setting permissions&lt;br /&gt;
Generating default configurations...&lt;br /&gt;
Finished generating default configurations&lt;br /&gt;
You have successfully installed FreePBX&lt;br /&gt;
Next, install the pm2 package with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo fwconsole ma install pm2&lt;br /&gt;
Next, change the Apache user to Asterisk and turn on the AllowOverride option with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
 sudo sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
Next, set upload_max_filesize to php.ini file with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/apache2/php.ini&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/cli/php.ini&lt;br /&gt;
Next, enable the Apache rewrite module and restart the Apache service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
After installation, you can use the FreePBX interface to search for extensions, modules, and trunks. The FreePBX dashboard provides the simplest way to manage Asterisk from a browser.&lt;br /&gt;
&lt;br /&gt;
==Step 5 – Access FreePBX==&lt;br /&gt;
Now, open your web browser and access the FreePBX web interface using the URL http://your-server-ip/admin. You will be redirected to the Admin user creation page:&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=411</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=411"/>
		<updated>2026-08-31T17:55:03Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;br /&gt;
 sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;br /&gt;
&lt;br /&gt;
==Step 1 – Install Required Dependencies==&lt;br /&gt;
 Before starting, update your package index and enable the Universe repository.&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository universe -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 Asterisk requires libraries like libxml2-dev and libssl-dev and git package for several build scripts and development workflows. You can install all required dependencies, development libraries, and build tools:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sox pkg-config libedit-dev unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y&lt;br /&gt;
 Once all packages installed successfully, you can proceed with the installation.&lt;br /&gt;
&lt;br /&gt;
==Step 2 – Install Asterisk==&lt;br /&gt;
 First, download the latest version of Asterisk from the Asterisk official website using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz&lt;br /&gt;
 Once the download is completed, extract the downloaded tar package file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf asterisk-20-current.tar.gz&lt;br /&gt;
 Next, use the cd command to change the directory to the extracted directory and install the required dependencies with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd asterisk-20.*/&lt;br /&gt;
 sudo contrib/scripts/get_mp3_source.sh &lt;br /&gt;
 sudo contrib/scripts/install_prereq install&lt;br /&gt;
 Next, run the following configure script to configure Asterisk:&lt;br /&gt;
&lt;br /&gt;
 sudo ./configure&lt;br /&gt;
 The configure script prepares the source code for your Ubuntu environment and Linux kernel.&lt;br /&gt;
&lt;br /&gt;
 Next, set the menu options with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make menuselect&lt;br /&gt;
 Before continuing, you can save a menuselect copy of your selected build options. This is useful when deploying newer versions of Asterisk later.&lt;br /&gt;
&lt;br /&gt;
 You can use the Arrow key to navigate and the Enter key to select.&lt;br /&gt;
&lt;br /&gt;
 Enable required add-ons:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Enable Core Sound Packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Enable MOH packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Enable Extra Sound Packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once all the components are installed, build Asterisk with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make -j2&lt;br /&gt;
Next, install Asterisk using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make install&lt;br /&gt;
 &lt;br /&gt;
Next, install configs and samples using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo make samples&lt;br /&gt;
 sudo make config&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
==Step 3 – Configure Asterisk==&lt;br /&gt;
Running Asterisk as the root user poses a major security risk so never run Asterisk as root.&lt;br /&gt;
&lt;br /&gt;
You must create a separate Asterisk user and group. You can create them with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo groupadd asterisk&lt;br /&gt;
 sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk&lt;br /&gt;
Next, add some required users to the Asterisk group with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG audio,dialout asterisk&lt;br /&gt;
Next, set proper permissions and ownership using the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R asterisk:asterisk /etc/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk&lt;br /&gt;
 sudo chown -R asterisk:asterisk /usr/lib/asterisk&lt;br /&gt;
Next, edit the /etc/default/asterisk file and set the asterisk user as a default user:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/asterisk&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
 AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
Save and close the file, then edit the Asterisk default configuration file and define the “run as” user and group:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/asterisk/asterisk.conf&lt;br /&gt;
Change the following lines:&lt;br /&gt;
&lt;br /&gt;
 runuser = asterisk ; The user to run as.&lt;br /&gt;
 rungroup = asterisk ; The group to run as.&lt;br /&gt;
Save and close the file, then restart the Asterisk service and enable it to start at system reboot with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart asterisk&lt;br /&gt;
 sudo systemctl enable asterisk&lt;br /&gt;
Next, verify the status of the Asterisk service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
In some cases, you should get the following error:&lt;br /&gt;
&lt;br /&gt;
 radcli: rc_read_config: rc_read_config: can&#039;t open /etc/radiusclient-ng/radiusclient.conf: No such &lt;br /&gt;
file or directory&lt;br /&gt;
You can resolve this error using the following commands: (bisa dilewati)&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;\[radius\]&amp;quot;\[radius\]&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; /etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cdr.conf&lt;br /&gt;
 sudo sed -i &#039;s&amp;quot;;radiuscfg =&amp;gt; /usr/local/etc/radiusclient-ng/radiusclient.conf&amp;quot;radiuscfg =&amp;gt; &lt;br /&gt;
/etc/radcli/radiusclient.conf&amp;quot;g&#039; /etc/asterisk/cel.conf&lt;br /&gt;
Next, start the Asterisk service again with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl start asterisk&lt;br /&gt;
 sudo systemctl status asterisk&lt;br /&gt;
Check the installed Asterisk version:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -V&lt;br /&gt;
Review the installation details carefully before moving forward.&lt;br /&gt;
&lt;br /&gt;
Next, connect to the Asterisk CLI with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo asterisk -rvv&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
 Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.&lt;br /&gt;
Created by Mark Spencer &amp;lt;markster@digium.com&amp;gt;&lt;br /&gt;
Asterisk comes with ABSOLUTELY NO WARRANTY; type &#039;core show warranty&#039; for details.&lt;br /&gt;
This is free software, with components licensed under the GNU General Public&lt;br /&gt;
License version 2 and other licenses; you are welcome to redistribute it under&lt;br /&gt;
certain conditions. Type &#039;core show license&#039; for details.&lt;br /&gt;
=========================================================================&lt;br /&gt;
Running as user &#039;asterisk&#039;&lt;br /&gt;
Running under group &#039;asterisk&#039;&lt;br /&gt;
Connected to Asterisk 22.4.0 currently running on ubuntu2404 (pid = 89531)&lt;br /&gt;
Exit out of the CLI type:&lt;br /&gt;
&lt;br /&gt;
 Exit&lt;br /&gt;
==Step 4 – Install FreePBX==&lt;br /&gt;
Before installing FreePBX, configure the firewall to allow web access, SIP signaling, and RTP traffic required by Asterisk. Web services such as HTTP and HTTPS use the TCP protocol, while SIP and RTP communications rely primarily on UDP ports for real-time voice transmission.&lt;br /&gt;
&lt;br /&gt;
Asterisk requires dedicated SIP ports for call signaling and a dedicated UDP port range for RTP audio streams. Opening the correct ports ensures that extensions, SIP trunks, and VoIP calls can connect and transmit audio properly.&lt;br /&gt;
&lt;br /&gt;
Run the following commands to allow the required traffic through UFW:&lt;br /&gt;
&lt;br /&gt;
 sudo ufw allow 22/tcp&lt;br /&gt;
 sudo ufw allow 80/tcp&lt;br /&gt;
 sudo ufw allow 443/tcp&lt;br /&gt;
 sudo ufw allow 5060/udp&lt;br /&gt;
 sudo ufw allow 5061/tcp&lt;br /&gt;
 sudo ufw allow 10000:20000/udp&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
Next, install the Apache, MariaDB, PHP and other required packages with the following command.&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y&lt;br /&gt;
Once all the packages are installed, download the latest version of FreePBX using the following command:&lt;br /&gt;
&lt;br /&gt;
 wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz&lt;br /&gt;
Once downloaded, extract the downloaded tar file with the following command:&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf freepbx-17.0-latest.tgz&lt;br /&gt;
Next, change the directory to the extracted directory and install the Node.js package with the following command:&lt;br /&gt;
&lt;br /&gt;
 cd freepbx&lt;br /&gt;
 sudo apt-get install nodejs npm -y&lt;br /&gt;
Next, set the required permissions with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo ./install -n&lt;br /&gt;
You should get the following output:&lt;br /&gt;
&lt;br /&gt;
Setting specific permissions...&lt;br /&gt;
30690 [============================]&lt;br /&gt;
Finished setting permissions&lt;br /&gt;
Generating default configurations...&lt;br /&gt;
Finished generating default configurations&lt;br /&gt;
You have successfully installed FreePBX&lt;br /&gt;
Next, install the pm2 package with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo fwconsole ma install pm2&lt;br /&gt;
Next, change the Apache user to Asterisk and turn on the AllowOverride option with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/^\(User\|Group\).*/\1 asterisk/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
 sudo sed -i &#039;s/AllowOverride None/AllowOverride All/&#039; /etc/apache2/apache2.conf&lt;br /&gt;
Next, set upload_max_filesize to php.ini file with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/apache2/php.ini&lt;br /&gt;
 sudo sed -i &#039;s/\(^upload_max_filesize = \).*/\120M/&#039; /etc/php/*/cli/php.ini&lt;br /&gt;
Next, enable the Apache rewrite module and restart the Apache service with the following command:&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
After installation, you can use the FreePBX interface to search for extensions, modules, and trunks. The FreePBX dashboard provides the simplest way to manage Asterisk from a browser.&lt;br /&gt;
&lt;br /&gt;
==Step 5 – Access FreePBX==&lt;br /&gt;
Now, open your web browser and access the FreePBX web interface using the URL http://your-server-ip/admin. You will be redirected to the Admin user creation page:&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=410</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=410"/>
		<updated>2026-08-31T06:25:35Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;br /&gt;
 sumber : https://32n.co/blog/installing-freepbx-and-asterisk-on-ubuntu-22-04-lts/&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=409</id>
		<title>Install freepbx di server ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Install_freepbx_di_server_ubuntu&amp;diff=409"/>
		<updated>2026-08-31T06:23:50Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Sumber : https://www.atlantic.net/vps-hosting/how-to-install-asterisk-and-freepbx-on-ubuntu/&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=408</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=408"/>
		<updated>2026-08-27T17:40:24Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;br /&gt;
&lt;br /&gt;
=Untuk Menjalankan sebagai server production=&lt;br /&gt;
 Setelah npm run build, jalankan :&lt;br /&gt;
 sudo npm install -g serve&lt;br /&gt;
 sudo serve -s dist -l 4071&lt;br /&gt;
 &lt;br /&gt;
menggunakan serve untuk melayani folder dist.&lt;br /&gt;
&lt;br /&gt;
1. Pastikan aplikasi sudah di-build&lt;br /&gt;
cd /var/www/pdf-toolkit&lt;br /&gt;
npm install&lt;br /&gt;
npm run build&lt;br /&gt;
&lt;br /&gt;
Pastikan:&lt;br /&gt;
&lt;br /&gt;
ls -lah /var/www/pdf-toolkit/dist&lt;br /&gt;
&lt;br /&gt;
ada index.html.&lt;br /&gt;
&lt;br /&gt;
2. Cari lokasi serve&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
which serve&lt;br /&gt;
&lt;br /&gt;
Biasanya hasilnya:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/serve&lt;br /&gt;
&lt;br /&gt;
atau jika Node.js dipasang dari NodeSource, bisa saja:&lt;br /&gt;
&lt;br /&gt;
/usr/lib/node_modules/serve/build/main.js&lt;br /&gt;
&lt;br /&gt;
Jangan menebak path-nya. Gunakan hasil which serve untuk konfigurasi service.&lt;br /&gt;
&lt;br /&gt;
3. Buat systemd service&lt;br /&gt;
sudo nano /etc/systemd/system/pdf-toolkit.service&lt;br /&gt;
&lt;br /&gt;
Isi:&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=PDF Toolkit Web Application&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
&lt;br /&gt;
WorkingDirectory=/var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5&lt;br /&gt;
&lt;br /&gt;
Environment=NODE_ENV=production&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Jika which serve menghasilkan path berbeda, ubah bagian:&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/serve -s dist -l 8080&lt;br /&gt;
&lt;br /&gt;
sesuai path tersebut.&lt;br /&gt;
&lt;br /&gt;
4. Pastikan permission&lt;br /&gt;
sudo chown -R root:root /var/www/pdf-toolkit&lt;br /&gt;
sudo chmod -R 755 /var/www/pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Karena service hanya membaca file dist, www-data tetap dapat membacanya.&lt;br /&gt;
&lt;br /&gt;
5. Reload systemd&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Aktifkan agar otomatis saat boot:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable pdf-toolkit&lt;br /&gt;
&lt;br /&gt;
Jalankan:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl start pdf-toolkit&lt;br /&gt;
6. Periksa status&lt;br /&gt;
sudo systemctl status pdf-toolkit --no-pager -l&lt;br /&gt;
&lt;br /&gt;
Targetnya:&lt;br /&gt;
&lt;br /&gt;
● pdf-toolkit.service&lt;br /&gt;
   Loaded: loaded&lt;br /&gt;
   Active: active (running)&lt;br /&gt;
7. Tes port 8080&lt;br /&gt;
sudo ss -lntp | grep 8080&lt;br /&gt;
&lt;br /&gt;
Kemudian:&lt;br /&gt;
&lt;br /&gt;
curl http://127.0.0.1:8080&lt;br /&gt;
&lt;br /&gt;
Kalau berhasil, akan mendapatkan HTML aplikasi.&lt;br /&gt;
&lt;br /&gt;
8. Tes restart server&lt;br /&gt;
&lt;br /&gt;
Ini yang memastikan systemd benar-benar bekerja:&lt;br /&gt;
&lt;br /&gt;
sudo reboot&lt;br /&gt;
&lt;br /&gt;
Setelah server hidup kembali:&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status pdf-toolkit --no-pager&lt;br /&gt;
&lt;br /&gt;
Harus kembali:&lt;br /&gt;
&lt;br /&gt;
Active: active (running)&lt;br /&gt;
9. Hubungkan ke Cloudflare Tunnel&lt;br /&gt;
&lt;br /&gt;
Karena Apache tetap menggunakan:&lt;br /&gt;
&lt;br /&gt;
:80&lt;br /&gt;
&lt;br /&gt;
PD&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=407</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=407"/>
		<updated>2026-08-27T15:14:52Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- sudo git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- sudo npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;sudo nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=406</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=406"/>
		<updated>2026-08-27T14:11:05Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: /* 5. Preview the production build: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;server: {&lt;br /&gt;
&lt;br /&gt;
    &#039;&#039;&#039;allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;},&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=405</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=405"/>
		<updated>2026-08-27T14:09:42Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  server: {&lt;br /&gt;
&lt;br /&gt;
    allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  plugins: [&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=404</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=404"/>
		<updated>2026-08-27T14:06:42Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
===export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  plugins: [===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
===export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  server: {&lt;br /&gt;
&lt;br /&gt;
    allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  plugins: [===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=403</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=403"/>
		<updated>2026-08-27T14:05:47Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  plugins: [&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  server: {&lt;br /&gt;
&lt;br /&gt;
    allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  plugins: [&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=402</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=402"/>
		<updated>2026-08-27T14:04:51Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
==1. Clone the repository: ==&lt;br /&gt;
&lt;br /&gt;
- git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
==2. Install dependencies:==&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
==3. Start the development server:==&lt;br /&gt;
&lt;br /&gt;
- npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
==4. Build for production:==&lt;br /&gt;
&lt;br /&gt;
- npm run build&lt;br /&gt;
&lt;br /&gt;
==5. Preview the production build:==&lt;br /&gt;
&lt;br /&gt;
- npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;nano vite.config.js&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  plugins: [&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  server: {&lt;br /&gt;
&lt;br /&gt;
    allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  plugins: [&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=401</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=401"/>
		<updated>2026-08-27T14:00:26Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : [https://github.com/yashdhanani/pdf-toolkit-app https://github.com/yashdhanani/pdf-toolkit-a]&lt;br /&gt;
&lt;br /&gt;
Installation &amp;amp; Setup&lt;br /&gt;
&lt;br /&gt;
1. Clone the repository:&lt;br /&gt;
&lt;br /&gt;
- git clone &amp;lt;nowiki&amp;gt;https://github.com/yashdhanani/pdf-toolkit-app.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- cd pdf-toolkit-app&lt;br /&gt;
&lt;br /&gt;
2. Install dependencies:&lt;br /&gt;
&lt;br /&gt;
- npm install&lt;br /&gt;
&lt;br /&gt;
3. Start the development server:&lt;br /&gt;
&lt;br /&gt;
- npm run dev&lt;br /&gt;
&lt;br /&gt;
- Open &amp;lt;nowiki&amp;gt;http://localhost:5173/pdf-toolkit-app/&amp;lt;/nowiki&amp;gt; in your browser.&lt;br /&gt;
&lt;br /&gt;
4. Build for production:&lt;br /&gt;
&lt;br /&gt;
- npm run build&lt;br /&gt;
&lt;br /&gt;
5. Preview the production build:&lt;br /&gt;
&lt;br /&gt;
- npm run preview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk akses menggunakan domain misalnya domain  : pdf.smpyppksantodonboscofakfak.sch.id, yang harus di rubah adalah file vite.config.js&lt;br /&gt;
&lt;br /&gt;
Cara  merubahnya&lt;br /&gt;
&lt;br /&gt;
nano vite.config.js&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan bagian atas sebelum di rubah :&lt;br /&gt;
&lt;br /&gt;
export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  plugins: [&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tampilan sesudah di rubah :&lt;br /&gt;
&lt;br /&gt;
export default defineConfig({&lt;br /&gt;
&lt;br /&gt;
  base: &#039;/pdf-toolkit-app/&#039;,&lt;br /&gt;
&lt;br /&gt;
  server: {&lt;br /&gt;
&lt;br /&gt;
    allowedHosts: [&#039;pdf.smpyppksantodonboscofakfak.sch.id&#039;],&lt;br /&gt;
&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  plugins: [&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu simpan file vite.config.js dengan tekan Control X, kemudian tekan Y, lalu coba akses menggunakan domain&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=400</id>
		<title>INSTALL PDF TOOLKIT DI SERVER UBUNTU 22.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=INSTALL_PDF_TOOLKIT_DI_SERVER_UBUNTU_22.04&amp;diff=400"/>
		<updated>2026-08-27T13:48:51Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: Created page with &amp;quot;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.  Sumber : https://github.com/yashdhanani/pdf-toolkit-app&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDF Toolkit: Utilitas PDF Berbasis Browser yang Serbaguna. Aplikasi web modern dan responsif yang dibangun menggunakan React dan Vite, serta didukung oleh UnoCSS untuk penataan gaya yang sangat cepat. Alat ini memungkinkan pengguna melakukan berbagai manipulasi PDF umum langsung di dalam browser, sehingga menjamin privasi dan efisiensi.&lt;br /&gt;
&lt;br /&gt;
Sumber : https://github.com/yashdhanani/pdf-toolkit-app&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
	<entry>
		<id>https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_streaming_cctv_hikvision_di_vmix&amp;diff=399</id>
		<title>Cara streaming cctv hikvision di vmix</title>
		<link rel="alternate" type="text/html" href="https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Cara_streaming_cctv_hikvision_di_vmix&amp;diff=399"/>
		<updated>2025-11-08T14:25:36Z</updated>

		<summary type="html">&lt;p&gt;Smpdbos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://www.youtube.com/watch?v=QiZpxiZJSp4 - Cara Live Streming IP Camera Hikvision Menggunakan VLC Player&lt;br /&gt;
 https://www.youtube.com/watch?v=xGYcYtCvT2Y - HIKVISION RTSP STREAM SETUP&lt;br /&gt;
[https://wiki.smpyppksantodonboscofakfak.sch.id/index.php?title=Special:UserLogin&amp;amp;returnto=Main+Page rtsp://username:password@no-ip-camera]&lt;/div&gt;</summary>
		<author><name>Smpdbos</name></author>
	</entry>
</feed>