Discord-Linux Wiki

How to Create Your Container

Once you've joined our Discord server, initiating your container setup is a breeze. Simply execute the /generate command to create a container that runs on the Ubuntu operating system.

Generate Command Screenshot

To select a different operating system for your container, utilize the /genos command and make your choice from the available options in the dropdown menu.

Genos Command Screenshot

Any containers that were not extended for 7 days will be automatically deleted every day at 6 PM EST (Eastern Standard Time).

SSH Connection

Run the following command: /start-ssh-port

The bot will provide you a command to use for connection. You will then be provided with a host and port.

Your Unique SSH ID

Once you've successfully created your container, a unique SSH ID is automatically generated and linked to your account on our platform. This SSH ID is specifically associated with your current account and serves as your user identifier for various purposes. To quickly retrieve your SSH ID, simply execute the /my-id command.

Container Expiry Policy

The containers have a standard lifespan of seven days, after which they will automatically expire and be deleted. To extend the duration of your free container, you can use the /extend command, which will add another seven days to the expiration date from the moment you issue the command.

The maximum amount of days extended will not exceed seven days.

Here's an example of how to check the remaining time on your container:

Check Expiry Screenshot

To extend time of your container, follow this example:

Extend Expiry Screenshot

Expire Notification

Our system will automaically notify you 24 hours before your container expire date.

Please note that notifications regarding container removal will be sent only to users within the same server as the @dlinux-Notifs Discord bot, with Direct Messages enabled.

Enhancing Container Security

Upon generating your container, you will receive a password via Direct Message. This password can be changed at your discretion, and you have the flexibility to modify it as many times as necessary.

To change your container's password, execute the following command:

echo "root:newpasswordhere" | chpasswd

Furthermore, you can alter the password by logging in through SSH and employing default Linux commands as shown below:

passwd root

Ensure that you enable privacy mode with /privacy before submitting the command. Prior to executing the command, verify that the slash command has loaded correctly.

In addition to these methods, our API provides an option to reset your container's root password. For further details, please refer to: API Documentation

Executing Commands

Please note that if a command initiated through Discord-Linux bots necessitates user input, the process will indefinitely wait, as interactive commands are NOT supported.

You can conveniently submit commands to your container using the /x <command> syntax after generating it. Each container is exclusively linked to a user through a unique User ID, guaranteeing that no other users can execute commands on your container, ensuring its security.

Here's an illustrative example of how to utilize the /x <command> syntax:

Execute Command Screenshot

The output of the executed command will be displayed once it has completed:

Command Output Screenshot

With the /x <command> syntax, you have the flexibility to run Linux commands within any public Discord channel where the bot has been granted access. It's important to note that while each user has "root" access to their own container, it does not equate to full "root" user privileges, leading to certain limitations in terms of kernel access and capabilities.

Container Startup Script

Upon your initial use of the container, you'll encounter a script named start.sh located in the root directory. This script is executed during boot time and provides you with the opportunity to configure commands or services you wish to run during startup, including systemctl services.

Let's dissect the purpose of each line within the start.sh file:

#!/bin/sh
export CID=$(basename $(cat /proc/1/cpuset))
service ssh start
sh /var/tools/getsystemctl.sh
tail -f /dev/null
  • #!/bin/sh: This line instructs the system to set a container ID within ENV.
  • export CID=$(basename $(cat /proc/1/cpuset)): Here, the container ID is exported as a system variable for reference.
  • service ssh start: This command initiates the SSH server during system boot.
  • sh /var/tools/getsystemctl.sh: This line executes a replacement for systemctl, which is required for managing system services.
  • tail -f /dev/null: The final line is responsible for keeping the container running. It's essential not to remove this line.

Once you've finished editing the start.sh file, it's crucial to run the chmod +x /start.sh command to make it executable. Additionally, it's important to edit the file using SSH rather than the bot to ensure that changes are properly saved and applied.

Notification Service

Our service now incorporates an integrated Notification Service designed to keep you informed about the progress of your installations using auto-installer and other important notifications from our team to you. This Linux program serves as a notifier, sending alerts to your Direct Messages.

To utilize this service, simply employ the following commands:

$ notif "This is a test message"

It has also been engineered to generate a message from arguments in the following manner:

$ notif This is a test message

Both of these commands will produce the same notification message, streamlining your experience.

This will only work if you are within our Support Server OR you have added the notification bot: @dLinux-Notifs#1282 you can invite the bot using /invite-notifs-bot.

Creating Files

In its latest update, the bot introduces support for modals, allowing you to seamlessly write files to your container's filesystem using the /write-file slash command. Upon executing this command, a form will appear, as depicted below:

Write File Screenshot

The resulting output will appear as follows:

Write File Output Screenshot

Subsequently, you can examine the contents of your newly created file:

View File Screenshot

Edit Files

Use the /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.

Edit File Screenshot

File Upload Methods

Uploading files to your container is a breeze, and we offer three straightforward methods for your convenience:

1) SFTP (SSH File Transfer Protocol)

You can easily upload files to your container by connecting to its SSH port using an SFTP client.

Connection details:

  • Host: ssh.surf or sftp://ssh.surf
  • User: root
  • Password: Your Root Password
  • Port: Your SSH Port

2) Command Line Uploader Tool

Our Command Line Uploader Tool enables you to upload files directly from your computer's command line. To get started, use the /upload-key command to generate an upload key. Once you have the key, execute the following command on your personal computer:

Linux/WSL:

bash <(curl -s https://files.ssh.surf/uploadInstall)

Mac:

bash <(curl -s https://files.ssh.surf/uploadInstallMac)

This initiates the tool installation process and prompts you for your SSHID and KEY. During installation, a Linux binary called sshup will be set up at /usr/bin/sshup, and appropriate file permissions will be configured using the chmod command. To upload a file, utilize the command sshup <filename>. Upon successful upload, you'll receive output messages similar to this:

~ ❯ sshup woo.js
######################################################### 100.0%
πŸ“ woo.js πŸ’Ύ (418.00 Bytes) ➑ 🐳 / ➑ 🌐 SSH34457493201438

3) Manual Upload with Curl

If you prefer not to use the client, you can manually upload a file using the curl command, like so:

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 stay within your file system's quota.

Additionally, we now offer the ability to upload files directly within Discord-Linux using the /upload command. However, please be aware that this command is subject to your account's upload limits, and it requires an attachment.

WARNING: Files uploaded using /upload will also be stored in Discord's Content Delivery Network (CDN). Avoid uploading sensitive files or confidential data to this service.

Port Access

Experience easier port setup with our new commands:

  • /start-ssh-port: Quickly initiate an SSH port.
  • /start-port name:http port:80: Generate the Connector and remote connection, and receive your designated port.
  • /remove-port name:http: Remove the specified port from both local and jump connections.
  • /restart-port name:http: Restart the specified port for both local and jump connections.
  • /holesail-connectors: View your holesail connectors for P2P connection outside of JUMP.

Should you require a fresh connection, simply rerun the command; the system will seamlessly replace your previous setup with a new one.

To learn how to do advanced configurations using holesail, please visit: https://wiki.ssh.surf/en/connections

Website Proxy

We provide a free website proxy service that can proxy any of your ssh.surf JUMP HOST ports. Once you have a valid ssh.surf port assigned, you can continue with the following:

If you do not have an account with our vhost feature yet, run /register-vhost-account. You only need to do this once.

To create a VHOST run /create-vhost this will ask for a name and a port. You can choose any subdomain from the following: dcord.us, ipnet.ink, gnu-linux.me, holepunch.online.

Once submitted the bot will generate your URL. To list your currently owned vhosts, run /list-vhosts. You may delete a vhost with /delete-vhost domain: test.domain.com.

HTTP Port Relay

🌐 Exciting Update: Automatic URL Relay Mapping! 🌐

We are thrilled to introduce our new Automatic URL Relay Mapping feature! Now, users can instantly generate a URL for an HTTP-based service without the need to open a port on our JUMP node. πŸš€

✨ New Command: /relay-port

πŸ”— Relays vs Ports:

  • Relays do not expire and remain online 24/7.
  • Relays do not reset on Sundays, unlike the other port system.
  • Relays will always provide a crypto subdomain from *.ssh.surf.

To get started: Run /relay-port port: PORTHERE. You will instantly receive a URL for your service! Simplify your service accessibility with our new URL Relay Mapping feature today! ⭐

Secrets Service

Service URL: https://secret.ssh.surf/

Our service includes a complimentary Secrets Service, allowing you to securely share sensitive information like passwords, authentication data, or tokens, all fully encrypted.

When you use this service, all data is encrypted within the container before it's transmitted. This ensures that your data remains confidential and inaccessible to anyone, including our network administrators.

The service is powered by a binary named sec. You can interact with it in two ways, either via the command line interface (CLI) or through the website:

Using Program Pipe:

root@SSH32345643456:/# echo "hello" | sec
Secret is now available at:
https://secret.ssh.surf/#23fc2f8d-7a11-4942-aad4-db2917d0005a%7CgksaOYP7LKKgG9uYlOCU

Using Program Argument:

root@SSH32345643456:/# sec "hello"
Secret is now available at:
https://secret.ssh.surf/#46fe99bd-adb4-49b8-9342-8fbe6c1913ba%7CwNtBYnlBSghUFTwvCyXN

To ensure the encryption process, you can view the client's raw bash script here.

PLEASE NOTE: Once a secret has been viewed, it will self-destruct. Ensure that the receiving party is informed to save their secret data.

Monitoring Resource Usage

Keep an eye on your container's resource utilization directly within Discord using the /stats command:

Resource Stats Screenshot

Send-To-Log

We're thrilled to announce the return of our Send-To-Log feature, now better than ever with automatic URLs from SSH.SURF! Share your terminal in read-only mode with many users, attach to your terminal in any shell session, and showcase or show off your container safely! πŸŽ‰

✨ New Features Include:

  • Automatic URLs from SSH.SURF
  • Share your terminal in read-only mode
  • Attach to your terminal in any shell session
  • Your Log URL Never Changes!

βš™οΈ Requirements:

  • Ubuntu container (other operating systems coming soon!)
  • A newly generated container! - Due to a bug found in older containers this is required.

To get started:

  1. Run auto-install send-to-log within an SSH session, or via /x
  2. The system will send notifications and a web URL to your send-to-log.

To send commands to your log:

  • Use the following within a terminal session:
  • s2l command here
  • Or use:
  • /x cmd:s2l command here

To take interactive control of the log:

  • Run s2l-ctl within an interactive terminal session.
  • This will open your log in live mode. To exit, type CTRL+A then CTRL+D.

Get started today and make the most of our revamped Send-To-Log feature! ⭐

Exporting Your Container

Easily obtain a download link for your entire container's filesystem with the /export command. This feature comes in handy for creating backups or transitioning to a different host.

Exports can be imported into another docker host of your choice. However, you must be using an x64 CPU within the host you import the image to.

Resetting Your Container

Starting afresh is a breeze with our system. Simply use the /destroy command to delete your current container, and then spin up a new one using /generate or /genos. You'll be back up and running in no time.

Please exercise caution when using the /destroy command as it will delete all data within your container. Take a moment to consider your decision before proceeding.

Container Deletion Screenshot

Holesail Manager

Overview

Holesail Manager is a command-line tool that allows you to manage connections for a service called Holesail. It provides functionality to create, remove, edit connections, start all connections using PM2, browse existing connections, and list PM2 processes.

Holesail is a revolutionary Peer-to-Peer (P2P) tunneling solution that provides instant access to your local network without the need for complex configurations. With Holesail, you can create P2P tunnels that bypass network, firewall, and NAT restrictions, securely exposing your services to the internet without requiring Dynamic DNS. This open-source tool enables you to share websites, Minecraft servers, VNC connections, and more with ease.

By utilizing Holepunching techniques, Holesail reliably bypasses firewalls and NATs, ensuring seamless connectivity while maintaining security through end-to-end encryption using libsodium. Whether you're a developer, gamer, or remote worker, Holesail empowers you to build secure connections and streamline your workflow without the hassle of traditional hosting methods.

To learn about holesail: https://holesail.io/

Holesail Manager is an in-house tool, if you encounter issues open a ticket.

Manual Usage

Command Line Arguments

Holesail Manager supports the following command-line arguments:

  • --new <port> <name>: Creates a new connection with the specified port and name.
  • --delete <name>: Removes the connection with the specified name.
  • --start: Starts all connections using PM2.
  • --list: View a list of existing connections.

Running the Program

To start Holesail Manager, run the following command:

connections

Alias:

con

This will launch the interactive menu where you can choose various options.

Menu Options

  1. Browse Connections: View a list of existing connections.
  2. Create Connection: Create a new connection by specifying a port and name.
  3. Remove Connection: Remove an existing connection by name.
  4. Edit Connection: Modify an existing connection's port number.
  5. Start all connections using PM2: Start all connections using PM2 without interactive menu.
  6. List PM2 Processes: View a list of all PM2 processes.
  7. Exit: Save changes and exit the program.

Example Usage

Creating a New Connection

To create a new connection, use the --new argument followed by the port number and name:

connections --new 3000 MyConnection
  • Connections are saved to a JSON file named connections.json in /var/connections.json.
  • Connections saved will auto boot with your container upon a start or restart.
Removing a Connection

To remove an existing connection, use the --delete argument followed by the connection name:

connections --delete MyConnection
Starting all Connections using PM2

To start all connections using PM2 without displaying the menu, use the --start argument:

connections --start

Connecting to a Port

After listening on a port, simply open the port to your localhost using holesail:

holesail connectionKeyHere

If you need to install holesail, run npm i holesail -g

Using our JUMP HOST

Experience easier port setup with our new commands:

  • /start-ssh-port: Quickly initiate an SSH port.
  • /start-port name:http port:80: Generate the Connector and remote connection, and receive your designated port.
  • /remove-port name:http: Remove the specified port from both local and jump connections.
  • /restart-port name:http: Restart the specified port for both local and jump connections.
  • /holesail-connectors: View your holesail connectors for P2P connection outside of JUMP.

Should you require a fresh connection, simply rerun the command; the system will seamlessly replace your previous setup with a new one.

All ports on JUMP are deleted every Sunday at 12 AM EST.

HTTP Port Relay (Alternative)

As an alternative: Users can instantly generate a URL for an HTTP-based service without the need to open a port on our JUMP node. πŸš€

✨ New Command: /relay-port

πŸ”— Relays vs Ports:

  • Relays do not expire and remain online 24/7.
  • Relays do not reset on Sundays, unlike the other port system.
  • Relays will always provide a crypto subdomain from *.ssh.surf.

To get started: Run /relay-port port: PORTHERE. You will instantly receive a URL for your service! Simplify your service accessibility with our new URL Relay Mapping feature today! ⭐

RayAI

πŸŽ‰ Introducing RayAI πŸŽ‰

πŸš€ We are excited to announce the release of RayAI, a user-installable app designed to bring the power of AI directly to your Discord profile! Whether you need conversational AI, automated assistance, or powerful command handling, RayAI is here to make your experience smoother and more fun! 😎

Features of RayAI

What can RayAI do?

  • πŸ’¬ Engage in AI-driven conversations, handle tasks, and more!

How to Install RayAI

πŸ“₯ Follow these steps to install and start using RayAI:

  1. Visit the installation page.
  2. Follow the simple steps to integrate RayAI into your Discord profile, making the bot accessible across any server.
  3. Start using the AI features instantly!

You can easily install the bot on your server by visiting this link: πŸ‘‰ Install RayAI

Source: RayAI Source

Blog Post: Creating a User-Installable AI Bot for Discord

dlinux

πŸŽ‰ Introducing dlinux – User Installable! πŸŽ‰

πŸš€ We are thrilled to announce the release of dlinux, a user-installable app designed to empower you with seamless container management directly from your Discord profile!

Important Note

ℹ️ This bot requires registration within the @Linux#7064 system and that you have a container generated within our system.

Source: dlinux Source

How to Install dlinux

You can easily install the bot on your server by visiting this link: πŸ‘‰ Install dlinux

URL Shortener

πŸ“’ Introducing Our New URL Shortener Bot! πŸ”—

πŸš€ We’re excited to announce the release of our brand-new URL Shortener Bot! πŸŽ‰ This bot helps you quickly and easily shorten URLs directly in your Discord server, with support for multiple domains!

Key Features

  • 🌐 Multiple Domains: Choose from a variety of domains, including:
    • s.shells.lol
    • s.hehe.rest
    • s.dcord.rest (default)
    • s.nodejs.lol
    • s.dht.rest
    • s.tcp.quest
  • ⚑ Fast and Secure: Shorten your URLs in seconds with a simple command.
  • πŸ”’ Easy to Use: Type /shortenurl followed by the URL, select a domain, and you’re done!

How to Install the URL Shortener Bot

You can easily install the bot on your server by visiting this link: πŸ‘‰ Install URL Shortener Bot

Discord-Linux Server Shop

πŸŽ‰ We're excited to announce the launch of the Discord Server Shop, offering new ways to enhance your Discord-Linux experience! πŸš€

All subscriptions now include persistent containers that stay active for the entire month with no expiration!

Basic Subscription - $4.99/month

Enjoy a container that remains active all month long, ensuring uninterrupted access to your server.

Premium Upgrade - $9.99/month

Power up your server with these enhanced features:

  • πŸ”· 4 GB of RAM for smooth performance
  • πŸ”· 6 CPU Cores for fast processing
  • πŸ”· 10 GB of Storage for all your files and data
  • Persistent container for the full month

Extra Information:

  • Upgrades will be provided ~30 minutes after purchase OR during generation.
  • Disk upgrades require a regen and cannot be done dynamically.

Note: Boost Server Upgrades have been disabled. To upgrade your server, please purchase a subscription from the store. This change was implemented to support the platform's sustainability, as Server Boosts previously provided no direct benefit to the service.

Thank you for being part of the Discord-Linux community! πŸ’»