Skip to content
Platform

Four parts of one session.

Files, terminal, Git and previews are not four services you sign into separately. They are four views of the same workspace, and this page describes each one as a student actually uses it.

01 / Session

The session is the machine.

A workspace is a Linux session with your home directory, your shell and your tools. You reach it through the browser, but nothing about it is simulated. Processes you start keep running until the session stops.

02 / Files

Stopping a session does not lose the directory.

Storage is separate from the session lifecycle. That separation is the reason a workspace can be stopped without turning your project into something you have to rebuild from a zip file on a USB stick.

03 / Previews

A local port, reached over HTTPS.

When your application listens on a port inside the workspace, that port can be opened in your browser through an address generated for your session. The port is not published on the host firewall, and the address is not guessable from the port number alone.

04 / Git

The repository lives where the code runs.

Git is available in the same session as the editor and the terminal, so reviewing a change, testing it and committing it happen in one place rather than across a laptop, a lab machine and a shared folder.

terminal
whoami
pwd
uname -sr

# student
# /home/student
# Linux 6.x
  • Home directory

    Your own /home directory, not a shared scratch space.

  • Processes

    Servers and long tasks keep running while the session is up.

  • Tools

    Whatever the workspace image includes. Check with --version before assuming.

What it does not do

A session is not permanent compute. It can be stopped to free resources, and anything running inside it stops with it. Saved files are not affected.

terminal
mkdir -p ~/projects/persistence-test
cd ~/projects/persistence-test
date > created.txt

# stop the workspace, start it again
cat ~/projects/persistence-test/created.txt
  • Keep work here

    Anything under your home directory, normally ~/projects.

  • Do not keep work here

    /tmp and other temporary paths, which are meant to be discarded.

  • Verify it yourself

    The commands above are the actual test. Run them once and you will trust it.

What it does not do

This is not a backup. It protects you from a stopped session, not from rm -rf. Push anything you care about to a Git remote.

terminal
python3 -m http.server 3000 --bind 0.0.0.0

# then open port 3000 from the workspace interface
  • Bind to 0.0.0.0

    Listening only on 127.0.0.1 can keep the preview router from reaching the process.

  • Open from the interface

    Use the ports control in the workspace. Do not construct the address by hand.

  • Any port

    3000, 8080, 8888 and others work the same way.

What it does not do

A preview is not hosting. The address is tied to a running session and stops working when the session stops, so it is not a place to deploy a finished project.

https://3000--main--web-lab--student.shamashcyber.com

  1. port3000
  2. branchmain
  3. workspaceweb-lab
  4. userstudent
git
git clone <repository-url>
cd <repository-directory>
git switch -c feature/my-work

git add .
git commit -m "finish lab work"
  • Branch per exercise

    Keep lab work on its own branch so the main branch stays readable.

  • Push regularly

    A remote is the only real backup of your work.

  • No tokens in files

    Never commit an access token, in source, in a README or in a script.

What it does not do

ShamashCyber does not host repositories. Use the Git service your course or club already uses as the remote.

01Session

The session is the machine.

A workspace is a Linux session with your home directory, your shell and your tools. You reach it through the browser, but nothing about it is simulated. Processes you start keep running until the session stops.

terminal
whoami
pwd
uname -sr

# student
# /home/student
# Linux 6.x
  • Home directory

    Your own /home directory, not a shared scratch space.

  • Processes

    Servers and long tasks keep running while the session is up.

  • Tools

    Whatever the workspace image includes. Check with --version before assuming.

What it does not do

A session is not permanent compute. It can be stopped to free resources, and anything running inside it stops with it. Saved files are not affected.

02Files

Stopping a session does not lose the directory.

Storage is separate from the session lifecycle. That separation is the reason a workspace can be stopped without turning your project into something you have to rebuild from a zip file on a USB stick.

terminal
mkdir -p ~/projects/persistence-test
cd ~/projects/persistence-test
date > created.txt

# stop the workspace, start it again
cat ~/projects/persistence-test/created.txt
  • Keep work here

    Anything under your home directory, normally ~/projects.

  • Do not keep work here

    /tmp and other temporary paths, which are meant to be discarded.

  • Verify it yourself

    The commands above are the actual test. Run them once and you will trust it.

What it does not do

This is not a backup. It protects you from a stopped session, not from rm -rf. Push anything you care about to a Git remote.

03Previews

A local port, reached over HTTPS.

When your application listens on a port inside the workspace, that port can be opened in your browser through an address generated for your session. The port is not published on the host firewall, and the address is not guessable from the port number alone.

terminal
python3 -m http.server 3000 --bind 0.0.0.0

# then open port 3000 from the workspace interface
  • Bind to 0.0.0.0

    Listening only on 127.0.0.1 can keep the preview router from reaching the process.

  • Open from the interface

    Use the ports control in the workspace. Do not construct the address by hand.

  • Any port

    3000, 8080, 8888 and others work the same way.

What it does not do

A preview is not hosting. The address is tied to a running session and stops working when the session stops, so it is not a place to deploy a finished project.

https://3000--main--web-lab--student.shamashcyber.com

  1. port3000
  2. branchmain
  3. workspaceweb-lab
  4. userstudent
04Git

The repository lives where the code runs.

Git is available in the same session as the editor and the terminal, so reviewing a change, testing it and committing it happen in one place rather than across a laptop, a lab machine and a shared folder.

git
git clone <repository-url>
cd <repository-directory>
git switch -c feature/my-work

git add .
git commit -m "finish lab work"
  • Branch per exercise

    Keep lab work on its own branch so the main branch stays readable.

  • Push regularly

    A remote is the only real backup of your work.

  • No tokens in files

    Never commit an access token, in source, in a README or in a script.

What it does not do

ShamashCyber does not host repositories. Use the Git service your course or club already uses as the remote.

Run the whole cycle once.

Start a server, open its preview, commit the change. It takes a few minutes and it is the clearest explanation of the platform.