User Tools

Site Tools


DevDungeon Mainframe

The DevDungeon Mainframe is a Linux lab server running Debian 10 for members to use for whatever projects they like. Members get SSH access to the server.

Here are some things you can do with it:

  • Learn and play on a Linux mainframe!
  • Program in a number of languages. Write bots, web apps, whatever!
  • Use it to store git repositories
  • Create a personal home page (e.g.
  • Run a web app/API/service
  • Use databases for storage

Getting started

Logging in

Use secure-shell (SSH). If you're in Windows, I recommend MobaXTerm but you can also use PuTTy or WSL. Newer versions of Windows may come with SSH in the command prompt already.


This will normally prompt you for your password, but you can generate an SSH key and use that to login without a password:

# Copy your SSH key if you already have one
# Generate an SSH key if you need one

Change your password

One of the first things you should do is change your password.


Absolute basics

Here are some absolute basic Linux commands to get you started.

cd /home/  # Change directory
ls         # List directory contents
cd ~       # Move to your home dir
pwd        # Print current directory
nano       # Simple text editor

Setup your homepage

Create a directory in your home directory named public_html. For example: /home/myuser/public_html/ and anything inside that will be mapped to: Your landing page will need to be named index.html or index.php.

For example:

# Create the public_html dir if needed
mkdir ~/public_html/
# Edit the main landing page
nano ~/public_html/index.php

You can put some simple HTML or PHP code in that file. For example:

  <p>This is my homepage.</p>

You can also place static files in that directory. For example, if you have a file named:


You would reach it via:

Alternatively, instead of editing the code from the terminal, you can edit on your personal computer and then upload the files. See the section on transferring files.

You can also create/modify .htaccess files to modify advanced configurations like turning on/off directory indices and changing the default landing page, password protecting directories, and much more.

Transferring files

Since you have SSH access, you can transfer files using scp (secure copy) or sftp (secure file transfer protocol. You can use the command line tool scp or any application that supports SFTP. For example:

When transferring files, use the host of and choose SFTP as the protocol. It uses the default SSH port of 22. Use the same username and password that you use to SSH to the server.


There are a number of programing languages installed and ready to play with:

  • C
  • C++
  • Go
  • PHP
  • Ruby
  • Crystal
  • Python
  • JavaScript
  • Java
  • Lua
  • Tcl
  • Haskell
  • Rust
  • Perl

Explore new languages, experiment with programming on Linux, interact with others on the server too. You can play with Linux pipes, FIFOs, and sockets and communicate with other users.

Here are some other ideas:

  • Write a game using Phaser.js and host it in your personal web space.
  • Write a bot for IRC, Discord, Slack, Twitter, etc.
  • Write a terminal based game (single player or multi player)
  • Collaborate with other members to work on something
  • Create a simple API for personal projects. For example, home automation and IoT projects or bot tools.
  • Play with a new programming language you've never tried
  • Find another member who has server access, and try sharing live terminals (for example using tmux or using local Linux sockets to create a primitive chat (for example using netcat).
  • Setup VS Code server for coding
  • Learn to work with IPv6
  • Learn to work with HTTP 2.0
  • Learn to work with WebSockets (duplex communication in browser)
  • Learn to work with WebRTC (Real-time voice/video in browser)

Run a web app/service/api

If you want to run an app that binds its own web server, like a Node.js, Python, Java, Ruby, or Go app, you can bind to any port that is not resricted by the system (anything over 1024).

For example, you can run a Node.js web app on port 9999 and access it at

Store git repositories

# Add your server as a remote
git remote add origin ssh://

Database storage

There are a few databases you can use on the lab server:

  • SQLite3
  • MySQL (MariaDB)
  • PostgreSQL

Forwarding X11 desktop

You can run desktop graphical applications from the server using X11 forwarding. Incomplete. To do

Cron jobs

Setup personal cron jobs with:

crontab -e

Systemd services

You can setup personal systemd services. Refer to

Other notes


  • /usr/games/asciijump

Other installed software

There are a number of other applications installed for everyone to use. Here are some of the applications installed. Also see the wiki section on Terminal for a lot of things you can do in a terminal.

  • Shells installed
    • /usr/bin/bash
    • /usr/bin/zsh
    • /usr/bin/fish
  • Terminal multiplexor
  • Editors
    • /usr/bin/vim - See: Vim posts
    • /usr/bin/emacs
    • /usr/bin/nano
  • File managers & tools
  • Email clients
  • Web
  • IRC/XMPP chat client
    • /usr/bin/irssi
  • System tools
    • /usr/bin/neofetch
    • /usr/bin/htop
  • Network tools
    • /usr/bin/netcat
    • /usr/bin/netstat
    • /usr/bin/traceroute
    • /usr/bin/nmap
  • DNS tools
    • /usr/bin/nslookup
    • /usr/bin/dig
  • LDAP tools
    • /usr/bin/ldapsearch
    • /usr/bin/ldapwhoami

Run your own server

The DevDungeon lab server is hosted on Digital Ocean. If you want to run your own Digital Ocean server so you have root access on your own machine, you can use this promo link for Digital Ocean. It will give you $100 of free credit:

community/linux_lab_server.txt · Last modified: 2021/05/20 23:04 by nanodano