Skip to main content

Services

This page is discussing about tools and services that we provide and some tips you can leverage.

Linux tools

These popular system-wide linux tools are available out of the box:

btopcmakecomposerconvertcurl
digdockergccg++git
gpg2gziphtopiftopjq
lsofmakemysqlnanoncdu
nodenslookupnvimopensslperl
pharphppipenvpsqlpython
rsyncrubysedsendmailssh
ssh-keygensqlite3tarvivim
wgetwhoisxzyarnzip
info

Don't rely on their version as it's OS wide and can be changed anytime though system updates.

Cron Job

You can create cron jobs by running crontab -e from SSH. It will open vim to edit cronjob for your server.

Please note, the minimum interval for cronjob is once in every hour; lesser than that and the system will delete your cron entries automatically!

Installing Shared Libraries

When you in a situation in needing linking C libraries but unable to do that because of lack to sudo access, you might need to download and build from the source as the alternative solution.

To do that, when you configure a C project, make sure to have prefix set to $HOME/.local instead of usual /usr/local so the installation will look like this:

./configure --prefix=$HOME/.local
make
make install

Then export LD_LIBRARY_PATH to that local folder permanently so your app can find the shared library.

echo 'export LD_LIBRARY_PATH=$HOME/.local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export LIBRARY_PATH=$HOME/.local/lib:$LIBRARY_PATH' >> ~/.bashrc

Phussion Passenger Tools

There's passenger-status and passenger-config to diagnose your app if you happen to use passenger apps.

The restart CLI tool is also to forcefully restart your currently running apps under NGINX. It's equivalent as killall -u $USER.

To check passenger apps logs, you have to check it from our UI panel.

Docker Tools

There's docker and systemctl --user when you activate docker feature via deployment system.

To manage docker apps including viewing logs, you have to check it via docker CLI tool.

This docker is run with rootless mode. Hence some features is unavailable such as limiting by CPU and RAM and binding to port <= 1024.

Ephemeral Ports

Most ports are blocked except ephemeral ports (32000 - 65535). You can use them for local development inside the server, including running a custom development without going though NGINX.

Please note that long-running background processes are not allowed in the server. It will be killed automatically as soon as you log-out from SSH session.

caution

DOM Cloud is a shared VM, so other people might stumble across your randomly assigned ports (incoming traffic from ports can't be divided by domain name unlike if it's going through NGINX). Never put any sensitive data if it's mean for development!

tip

To automatically run with server public IP and random ports, use syntax like this:

export HOST=$(hostname -I | cut -d " " -f1)
export PORT=$(shuf -n 1 -i 32000-65535)
npm run dev -- --host $HOST --port $PORT

Memory Sharing

Any application run through Passenger will be spawned into multiple processes. If you save data through memory (i.e. saving some data into global variables) it won't work consistently, you have to save it either in file or database.

If you want performant cache storage, look for other platform. Some of them may grant free Redis storage. Just make sure the cluster is in same region with what you use in DOM Cloud.

Managing File Storage

If you need to delete caches and other unnecessary files in one of your hosts, use ncdu. It's a disk usage analyzer available in all servers. This is a great tool to use if you run out of disk space.

Installed PHP Extensions

PHP are installed as system wide. It's installed as in these commands:

yum install {php74,php80,php81,php82}-php-{bcmath,cli,common,devel,fpm,gd,imap,intl,mbstring,mysqlnd,opcache,pdo,pecl-mongodb,pecl-redis,pecl-zip,pgsql,process,sodium,soap,xml}

Here's the list of extensions available:

bcmathbz2calendarCorectypecurl
calendardatedomexiffileinfofilter
gdgettexthashiconvigbinaryimap
intljsonlibxmlmbstringmongodbmsgpack
mysqlimysqlndopensslpcntlpcrePDO
pdo_mysqlpdo_pgsqlPharpdo_sqlitepgsqlposix
randomreadlineredisReflectionsessionshmop
SimpleXMLsoapsocketssodiumSPLsqlite3
standardsysvmsgsysvsemsysvshmtokenizerxml
xmlreaderxmlwriterxslZend OPcachezipzlib

Custom extensions can't be installed as it's a shared across system. However, you can download PHP yourself and attach it to Nginx via Passenger and FastCGI.