Thank you for coming by and checking out our docs taking a deeper dive into what our service can offer you 100% for free.
Our team has spent an abundance of time and energy to make all of this possible, and we are very excited to meet you and see the different things people will build on our platform.
This is more than a developer hosting service, this is a community based on the love to use Linux and the drive to learn as much as we can to succeed in the art of programming.
If you are like us and would love to learn how to progress your knowledge in either programming or Linux, please follow to the next section and join our discord server.
If you have not done so yet, please join our discord server.
Join our discord server here: CLICK ME
Once you are a member of our discord server, you may automatically begin generating a container.
Here is an example of this using the /generate command which will automatically select Ubuntu.
If you would like to choose an Operating System for your container, you may use /genos like so:
Simply use the drop down to select the OS you would like to use.
Each generated container has an expiration date which is seven (7) days after the container generated, and will be removed automatically after that.
Only the upgraded containers that has no expiration date.
IIf you want your free container to run longer than seven (7) days, you need to extend the container by running the extend command
^extend to add seven (7) days from the date the command was ran.
Here is an example of checking your containers time:
Here is an example of a time extention:
You are provided with a randomly generated password through Direct Message once container generation has completed, however, you may wish to change this password.
Secure your container by running the following command:
echo "root:newpasswordhere" | chpasswd
You can also login via SSH and use passwd like this:
Warning: Consider not running these two commands in public as some servers does set up a discord bot that logs deleted message which logs almost every single deleted messages. Run these commands through the bot’s DMs instead!
Once your container has been generated, you can submit commands to it, this can be done using the “/x command” syntax OR you may Direct Message the bot for a more “SSH” feel.
Each container is linked using Discord ID, so it’s not possible for other users to submit command as you, so your container is private.
Here is an example of the “/x command” syntax
This is showing the command as it finishes running:
As you can see in the above, the “/x command” syntax will allow the user to submit any linux command in any public discord channel that allows the bot access.
All users interact under the “root” user.
You can also submit commands directly through the Direct Message for even more privacy.
Here is the same command but sent through Direct Message.
As you can see, submitting commands through Direct Message gives the commands a lot more “SSH” feel.
You can use the ^genshell command to generate your own shell channel.
These channels do not have a prefix and act just like an SSH client.
Here is an example of generating a shell channel:
Now you can access the thread and submit commands, prefix free!
If the server is boosted enough at the time for a private shell so no one else can join your shell, you may attempt to use ^pvtshell
Just like any Linux Environment, you will need to browse the filesystems directories and create files and directories.
In this example, we are going to change to the root directory of the container:
Once submitted, the bot will confirm its working directory:
Now, you can ls the directory to view its contents using /x cmd ls
Within Discord-Linux there is no use of ~ or … So we coded a custom solution for this. In this example, I will show you how to go backwards in navigation:
We are currently in the /home/raven/test directory:
Now we use /x cmd gobk to change to /home/raven:
Upon your first few uses of the containers, you will see
start.sh in the root directory of the container
This script is called when the container boots up, this is where you define your systemctl service starts or any commands you would like to run during boot time.
Here I will break down each line in the stock file:
#!/bin/sh < – Tells the system to use SH
export CID=$(basename $(cat /proc/1/cpuset)) < — Container ID as a system VAR
service ssh start < — This starts the SSH Server on boot
sh /var/tools/getsystemctl.sh < — Replacement for systemctl which is required
tail -f /dev/null <— To keep the container running! DO NOT REMOVE!
Now, we have a built-in Notification Service which is installed along with our AutoInstallers. This is a Linux binary which gives your container the ability to DM you about anything you wish.
Our best example of this, is within our AutoInstallers which some of them do take a lot of time to finish installing. Due to this, I wanted to provide a way for users to run the installer and then just walk away. They will be notified through DMs with a direct link to their installation when it’s completed.
To install it manually, use:
wget -q -O - https://ssh.surf/notify | bash
Then, you can call it by running the binary
notif. The bin is installed in
To use, simply pass text:
$ notif “This is a test message”
I also coded it to form a message out of args like so:
$ notif This is a test message
Both commands will output the same message.
You can code in any language you wish using Discord-Linux, this guide will show a NodeJS example application as NodeJS and PM2 are installed by default.
You can write a file using the following syntax
This can also be done through Direct Message like so:
You can upload files using default discord upload feature either with drag and drop or with the upload button.
You can send your files to discord using the ^send-file (or /openfile) command like so:
Each container gets a set of 5 ports open, one is dedicated to SSH and is binded to port 22 on your container, the other is dedicated to HTTP Server and that is binded to port 80 on your container.
You also get 10 random ports assigned to your container for other usages, here is how to check your ports with the /ports command:
If you would like to register a subdomain to be used as a hostname for your container, you can use our custom Hostname Generator
There are only two steps involved:
Step 1) Generate an A record within DNS to do so run the following command:
+dns register hostnamehere
(This will register hostnamehere.ssh.surf)
Step 2) Generate a VHOST within Apache. To do so run the following command:
+dns vhost 28201
(This will bind the port 28201 to your hostname)
Here is an example of this working:
You can also map URLs to subdomains like so
This does infact result in the URL being accessible from the indicated subdomain
This service is in beta and may not work properly.
Needs a domain but don’t have the budget for it? Get one for free: https://www.freenom.com/en/index.html?lang=en
If you own your domain and would like to use it with our service, there are just few setup steps to go through:
Step 1) Generate the DNS Record, you can do so with the following command:
+dns register custom dlinux1234.ga
Here is a screenshot showing the expected result:
Step 2) Change the domains Nameservers to the following:
Replace the domain with your own preferred domain
Once you see all locations testing with a green mark, move to the next step.
Step 4) Generate a certificate for your custom domain. This can be done with the following command:
Here is a screenshot showing the expected result:
This now means that you have a valid SSL Certficate generated, now we can move to step 5 and generate the VHOST.
Step 5) Generate the VHOST, you do this by inputting a port to bind the domain to like so:
+dns vhost custom 27933
This will fail if step 4 has yet to be completed!
Here is the expected output:
If you see the above output, your domain is ready! Congrats!
This requires you to already have a Custom Host Name already set up within the above section.
The system will automatically attempt to renew your certificate as it expires, however, if this fails, simply request a new certificate by re-running the gencert command.
Once you have added a custom hostname, You can now generate and use an unlimited number of subdomains with your custom hostname.
This can be done following the below steps:
Generate a certificate for the subdomain
Generate a VHOST
The subdomain will now be accessible
You can also map a URL to a subdomain using the vhosturl function like so
Which does result in the URL being accessible at the subdomain indicated
You can check your container resource usage within Discord using /stats like so:
If you would like to either have a backup or download an export of your container to start up at another host, you can do so using the /export command, you will then see a DirectMessage containing a download link containing the entire filesystem of your container.
Say that if you want to start all over brand new, that is easy for our system to handle, simply use the /destroy command to destroy and remove your existing container and then, you can use /generate again to start fresh!
Note: Running this command will remove all of your existing data in the container, please think twice if you really want to run this command.
We offer container upgrades at our upgrade store https://store.discord-linux.com/
Before purchasing an upgrade at our store, please ensure you have a container running within Discord-Linux.
Within this example, I will show us upgrading our test users container to the “Power” plan.
At the upgrades page, add your DiscordID as shown below
Submit your order and complete your checkout using Paypal:
Once you see the “Order Confirmation” screen, the upgrade has already completed and you will notice a license key:
Here is showing the upgraded resources:
Now that you have a key, this can be used on your account to allow the upgrade for your account to persist during ^destroy and ^generate events.
To apply the key use the ^add-key command like this:
Then, you can now check the details about this license key using ^key-status like so:
As you can see below, the key was detected and the container was upgraded automatically:
Any key that expires gets automatically removed from the system and the container will be reset to default limits. Upgrades can be purchased at any time.
If you would like to donate to help keep our services online and provide much more powerful machines, please consider purchasing a container upgrade, or donate to us through the methods below:
Donate to Discord-Linux via Paypal
Donate to Discord-Linux via Bitcoin
Donate to Discord-Linux via LiteCoin
Donate to Discord-Linux via Ethereum
Any donations are very much appreciated.