▄▄             ▄▄▄  ▄▄▄ Power
█  █ ▄▄▄▄ ▄▄▄▄▄ █  █ █  █
█▄▄█ █▄▄▄ █ █ █ █▀▀▄ █▀▀▄
█  █ ▄▄▄█ █ █ █ █▄▄▀ █▄▄▀

Login
Register
/ ad amd64 asm asmbb best chat common debian deck design dll fast fossil gamedev heap help hiawatha incredible interop learning libfresh links linux meme meta.http-equiv money neo nginx orly os pass password programmers programming resources script.alert.xss secret seo skins sodom source sourcecode test work xss игнат котики парола русский тест уеб.програмиране хабр.наполеон
Categories Thread list

How to install AsmBB on VPS with Nginx and systemd

How to install AsmBB on VPS with Nginx and systemd

Recently I migrated the whole my domain asm32.info on a new hosting - cheap $5 a month VPS from Vultr.

The migration was because of some bugs in Apache http2 module on my previous hosting provider that have broke the server sent events on the real time chat of AsmBB. As long as I was on a shared hosting, it was impossible to control the Apache settings, so I decided to take control in my hands. ?:)

Anyway, during the migration, I installed Nginx as a web server and in this post will explain how to setup AsmBB on this setting.

1 Prerequisites

For this tutorial I am assuming you have:

  • Some Linux admin skills. You should be able to install packages and to setup a web server (at least following the countless tutorials on the Internet).
  • Working GNU/Linux distribution with systemd. Of course any other distro will work, but you will need to setup the startup of AsmBB by yourself.
  • Installed Nginx web server. I will explain only how to integrate AsmBB.

    2 Installing AsmBB

    Download the recent binary package from the permanent link: asmbb.tar.gz

    Create a new directory, where the forum sub-domain will stay. I will name it /PATH/TO/FORUM/. Put the downloaded file inside.

    Untar with the following commands: $ tar -xvzf asmbb.tar.gz $ mv asmbb/* ./ $ rm -rf asmbb/

    After the unpack, there are some unneeded files, like text files and example config files in the directory. You can safely delete them. Only the subdirectories and 3 executable files are required. Notice that the subdirectories may contain some important symlinks, so unpacking on local computer and then uploading through FTP will not work (because FTP can't copy symlinks).

    All the files and the directory must be owned by some non-root user that will run AsmBB later. I will name it NON_ROOT.

    3 Nginx configuration

    Insert in the nginx config file (in /etc/nginx/nginx.cong or in the forum sub-domain configuration file) the following: server { ..... # Your subdomain server configuration. # Should contains at least "listen" and "server_name" nginx options. root /PATH/TO/FORUM/; location / { fastcgi_pass unix:/PATH/TO/FORUM/engine.sock; include fastcgi_params; } }

    Don't forget to replace the placeholders!

    Restart Nginx: sudo systemctl restart nginx

    4 Systemd configuration

    Now configure systemd service that to manage AsmBB engine.

    Will need root access here. Create as a root the file /etc/systemd/system/asmbb.service with the following text (of course replace the placeholders /PATH/TO/FORUM and NON_ROOT: [Unit] Description=AsmBB forum engine FastCGI script. After=nginx.service [Service] Type=simple User=NON_ROOT WorkingDirectory=/PATH/TO/FORUM ExecStart=/PATH/TO/FORUM/engine Restart=on-failure [Install] WantedBy=nginx.service

    5 Finalizing

    You just finished the configuration.

    Now you can open the forum sub-domain in your browser. You should get 502 bad gateway error, because AsmBB is still not running.

    Now start AsmBB: sudo systemctl start asmbb

    Refresh the browser. The admin setup dialog of AsmBB should appear. Setup your admin user and the forum should start working in regular mode.

    If everything is OK until now, let's make the startup of AsmBB automatic on server restart: sudo systemctl enable asmbb

    That is all. You now have working, blazingly fast web forum that can handle hundreds of users and million posts with very low system resources.

    Login as an administrator and adjust the settings of the forum to your preferences.

  • hi,

    i need some help.

    can you send me an example ngnix conf file.

    thanks

    ufuk

    hi,

    i need some help.

    can you send me an example ngnix conf file.

    thanks

    Well here it is. You must replace all placeholders with your real paths. I mean:

    PATH_TO_ASMBB - where you put the AsmBB files.

    PATH_TO_LOG_FILES - where you want nginx to store the log files.

    PATH_TO_SSL_CERTIFICATES - where are placed your SSL certificates.

    Also, the server_name value must to be replaced with the proper name for your setting. # file: /etc/nginx/sites-available/board.conf # AsmBB demo message board at https://board.asm32.info server { listen 443 ssl http2; server_name board.asm32.info; root /PATH_TO_ASMBB; access_log /PATH_TO_LOG_FILES/board_access.log combined buffer=32k flush=5m; location / { fastcgi_pass unix:/PATH_TO_ASMBB/engine.sock; include fastcgi_params; } ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:20m; ssl_session_timeout 60m; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5; ssl_certificate /PATH_TO_SSL_CERTIFICATES/fullchain.pem; ssl_certificate_key /PATH_TO_SSL_CERTIFICATES/privkey.pem; }

    The file /etc/nginx/fastcgi_params included in the location section is part of the standard nginx installation and contains only some environment variables: fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;

    AsmBB v2.4 (check-in: 3ccf67b951d46739); SQLite v3.25.0 (check-in: 5a954533edbde58a);

    ©2016..2018 John Found; Licensed under EUPL.
    Powered by Assembly language
    Created with Fresh IDE

    Icons are made by Egor Rumyantsev, vaadin and icomoon from www.flaticon.com