After joining our Discord server, you can use the
/generate command to instantly create a container that runs Ubuntu.
To choose an Operating System for your container, simply use the
/genos command and select your preferred OS using the drop-down menu.
If containers are not extended or inactive for 7 days, they will be deleted daily at 6 PM EST.
We will send you the root password and SSH connection details for your container via Direct Message. In case you created your container using the Web Control Panel, the default password will be DiscordLinux.
After creating your first container, a special SSH ID is generated and assigned to you as your user ID on our platform.
This ID is tied to your current account and can be used for upgrades. You can easily find your ID by running
Our containers are only available for seven days before they expire and are deleted automatically.
Upgraded containers don’t have an expiration date, as long as your key is still valid.
To keep your free container running for more than seven days, you can use the
/extend command to add another seven days from the date you use the command.
This is an example of how to check the remaining time on your container:
To extend the time on your container, you can follow this example:
Notifications about container removal will only be sent to users who are on the same server as the @dlinux-Notifs Discord bot and have their Direct Messages turned on.
If you want to add the @dlinux-Notifs bot to your server, simply run the
To use our new control panel, go to https://ctl.ssh.surf.
You’ll receive the login credentials for the control panel through Direct Message after you create your first container.
Don’t forget to save your login credentials somewhere safe, since we’ll only send them to you once.
Should you lose access to your login information, please contact snxraven#8205 on Discord for assistance.
Our new control panel lets you manage your container, including starting, stopping, and restarting it, as well as accessing the terminal on-the-go without requiring an SSH connection.
Our control panel features easy-to-read graphs that display your container’s resource usage, and lets you view all running processes.
Once your container is generated, a password will be sent to you via Direct Message. You have the option to change this password as many times as you need to.
Running the following command will allow you to change your container’s password:
/x echo "root:newpasswordhere" | chpasswd
Additionally, you can log in through SSH and use default Linux commands like this:
Make sure to turn on privacy mode with
/privacybefore submitting the command.
Before running the command, make sure the slash command has loaded correctly.
Our API also allows you to reset your container’s root password.
If a command sent through Discord-Linux bots requires user input, the process will wait indefinitely since interactive commands are not supported.
/x <command> syntax can be used to submit commands to your container after it has been generated.
Each container is connected to a user through a User ID, so it’s impossible for other users to execute commands on your behalf, ensuring your container’s safety.
Here’s an example of how to use the
/x <command> syntax.
The command’s output will be shown when it’s finished running:
/x <command> syntax, you can run Linux commands in any public Discord channel that the bot has been granted access to.
Each user has “root” access to their own container, but it’s not exactly the same as being the real “root” user, so there are some limitations.
In the same way as in a typical Linux environment, you will need to explore directories and create files and directories.
Let’s change to the root directory of the container with this example.
When you run the command to change to the root directory of the container, the bot will confirm that it has changed its working directory.
Use the command
/x cmd: ls to view the contents of the directory.
When you use the container for the first time, you’ll find a script named start.sh in the root directory. It’s executed during boot time and allows you to set up commands or services you want to run during startup, including systemctl services.
This will explain what each line in the
start.sh file does.
#!/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!
After you have finished editing the start.sh file, it is important to run the chmod +x /start.sh command to make it executable. It is also crucial that you edit the file using SSH and not the bot to ensure that the changes are saved and applied correctly.
Our AutoInstallers now come with a built-in Notification Service that can send you alerts about the progress of your installation. This is a Linux program that can notify you when the installation is complete, so you can stay informed without constantly checking on it. Once the installation is done, you will receive a direct link so you can access it immediately and get back to your work.
To use, simply pass these commands:
$ notif discord|revolt “This is a test message”
It was also coded to form a message out of arguments like this:
$ notif discord|revolt This is a test message
Both commands will output the same message.
The bot’s recent update now supports modals, which let you write files to your container’s filesystem using the /write-file slash command. When you use this command, a form will pop up, which looks like this:
The output will be like so:
Then you can check the contents of your new file:
/edit-file command with the full path to a file to edit it from within your container. A form with the file’s contents will appear, allowing you to make changes easily. However, only use this command for small files and not large ones with hundreds of lines.
You can upload files to your container using any of these three simple methods.
You can upload files to your container by connecting to its SSH port using SFTP.
You can use our Command Line Uploader Tool to upload files directly from your computer’s command line.
To begin uploading files to your container, you can use the
/upload-key command to generate an upload key.
Once you have the upload key, run the following:
bash <(curl -s https://ssh.surf/uploadInstall)
This will start installing the tool, and during the process, it will prompt you for your SSHID and KEY.
The install script will set up and install a Linux binary called sshup at the location
/usr/bin/sshup. Additionally, it will set the correct file permissions for the binary using the
To upload a file, use the command
sshup <filename>. Once the upload is complete, you will see some output messages as shown here:
~ ❯ sshup woo.js ######################################################### 100.0% 📝 woo.js 💾 (418.00 Bytes) ➡ 🐳 / ➡ 🌐 SSH34457493201438
If you prefer not to use the client, you can manually upload a file using the curl command, like this:
curl -X POST -F myFile=@YOURFILE "https://up.ssh.surf/?cid=SSHIDHERE&key=KEYHERE"
You can upload files without any restrictions using the script, as long as you don’t exceed your file system’s quota.
You can now upload files within Discord-Linux using the
/upload command, this command is limited to your accounts upload limits.
An attachment is required.
WARNING: All files uploaded using
/uploadwill also enter Discord’s CDN
DO NOT UPLOAD SENSITIVE FILES OR DATA TO THIS SERVICE.
Each container gets a set of 4 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.
If you want to check your ports, use the
You can use our custom Hostname Generator to register a subdomain and use it as your container’s hostname.
There are only two steps involved:
Step 1) Register the subdomain:
The process of selecting the subdomain you wish to register involves filling out a Discord form.
Once the form is submitted, your subdomain will be prepared for the next step.
Step 2) Generate a VHOST within Apache.
To do so run the following command:
You can input your subdomain and port number in a Discord form that will be displayed.
Assigning a port requires the use of the local port of your webserver that runs within your container.
Our DNS Node has been decommissioned as of March 7th, 2023.
The following instructions detail how to use your own domain with our services.
We recommend moving your domain to https://cloudflare.com if it’s currently in our Panel.
You have the option to use your registrar’s DNS settings or any other free DNS service available.
Our IP Address is:
Please set your A Record for your domain accordingly.
CNAME Records are currently NOT supported, please ensure you have an A record as noted above.
An update will be posted here once this support is added.
The following DNS Configuration at CloudFlare is an excellent example that will work perfectly:
Use this command to add a domain to your account:
/register-custom(Only adds primary domains, no subdomains)
You will be prompted to enter the domain you want to add.
The next step involves generating a certificate for the domain.
A form will appear asking for the domain or subdomain you want to generate a certificate for.
Ensure that DNS has fully propagated before issuing a certificate.
Use the URL provided below to confirm the correct NS Records and A Records before requesting a certificate.
Lastly, add a VHOST for a PORT:
Enter your domain or subdomain and port number on the Discord form provided.
Assigning a port requires the use of the local port of your webserver that runs within your container.
You may find that you want to use the CloudFlare Proxy and allow CloudFlare to generate and manage certificates for your URLs automatically.
To do so, create the A record for your domain or subdomain as needed within CloudFlare while leaving the Cloud “Orange” to enable the proxy.
Use the command
vhost-custom-cf to generate a vhost compatible with CloudFlare.
Make sure your SSL Settings are set to
You can view your container resource usage in Discord by using
You can obtain a download link for your container’s complete filesystem by using the
/export command, which is useful for creating backups or migrating to a different host.
Starting anew is simple with our system; just use
/destroy to delete your current container, and then create a new one with
/genos. You’ll be up and running again in no time.
This command will delete all the data in your container. Please consider carefully before running the
You can upgrade your container at our upgrade store located at https://ssh.surf.
Check if you have a container and know your SSHID before purchasing an upgrade from our store.
Here is an example of how to upgrade a container from the “Free” plan to the “Pro” plan.
To upgrade your container, make sure you have a running container in any of our platforms and know your SSHID. Then go to the upgrade page, enter your SSHID, and complete the checkout using your credit/debit card.
The upgrade is done after you see the “Order Confirmation” screen, and you will get a license key.
After purchasing an upgrade, you’ll receive a license key. You can apply this upgrade to any container you generate using the
/add-key command. The command uses a modal form for privacy, so no one else can access your key.
After submitting the license key with the
/add-key command, your container will be upgraded automatically.
This shows how much more resources you’ll get with the upgrade.
After adding your license key to the Discord-Linux bot, you can check its status using the
/key-status command. This will provide you with information about the key, including its status, date ordered and expiration date.
Expired license keys are removed automatically, causing the container to revert to default limits, except for network ports and disk. You can purchase upgrades anytime.
You can support our mission of keeping our services online and providing more powerful machines by purchasing a container upgrade or donating through the link below. Your contribution will help us continue to provide the best possible service. Thank you for your support!