Compare commits

...

5 Commits

Author SHA1 Message Date
bff68aa4e1 Add manual to skel 2025-07-24 01:46:47 -04:00
0016f83821 Add samba screenshot to manual 2025-07-24 01:19:11 -04:00
01a7db7a1c Add rstudio-server screenshot to manual 2025-07-24 01:15:42 -04:00
f7fa0de24c Tighten up manual 2025-07-24 01:10:25 -04:00
97eb4bff88 Add more images to manual 2025-07-24 01:01:30 -04:00
8 changed files with 49 additions and 27 deletions

View File

@@ -2,9 +2,9 @@
## First-time login
1. Ensure an admin has enabled your user account and provided a username.
1. Ensure an admin has enabled your user account and provided you a username.
2. Login via [`ssh`](#ssh): `ssh username@hartmanlab.genetics.uab.edu` (default password is your *username*)
3. You will be prompted to create a new password and then logged out
3. You will be prompted to create a new password and then logged out.
4. Login again using your new password: `ssh username@hartmanlab.genetics.uab.edu`
5. Change the default `samba` password (default password is also your *username*): `smbpasswd`
6. *Optional*: Generate a public-private keypair on your client and copy it to the server for faster and more secure logins.
@@ -37,21 +37,19 @@ Launch graphical server programs locally on a client that execute on the server.
## `sftp`
Browse and manage files stored on the server.
Browse and manage files stored on the server. Best for Linux.
* Access the server sftp via most file managers using a `sftp://` address.
* Native access to sftp shares using client file manager (`sftp://username@hartmanlab.genetics.uab.edu:/home/username`):
![sftp](docs/imgs/sftp.png)
* Linux/OSX/Windows
* [Filezilla](https://filezilla-project.org/download.php?type=client)
* [Filezilla](https://filezilla-project.org/download.php?type=client) (Linux/OSX/Windows)
![Filezilla](docs/imgs/filezilla.png)
* [sshfs](https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh)
* Windows
* [WinSCP](https://winscp.net/eng/index.php)
* [sshfs](https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh) (Linux/OSX/Windows)
* [WinSCP](https://winscp.net/eng/index.php) (Windows)
## `samba`
Mount `samba` file shares on any platform as if the server data was on a local drive.
Another method to browse and manage files stored on the server. Best for OSX/Windows.
The server provides two `samba` shares:
@@ -60,6 +58,8 @@ The server provides two `samba` shares:
The default `samba` credentials are the same as your server username and password. Users can change their `samba` password using `smbpasswd`.
![samba](docs/imgs/samba.png)
## `x2goclient`
![x2go_desktop](docs/imgs/x2go_desktop.png)
@@ -91,31 +91,46 @@ X2Go sessions can be paused or suspended from the X2Go client window. Multiple s
**Note:** Some programs do not continue to run at full speed when an X2Go session is paused. In these cases, the program should be run via `ssh` in a [`tmux`](https://en.wikipedia.org/wiki/Tmux) or [`screen`](https://www.gnu.org/software/screen/) session.
## Robot computer remote desktop access
## ~~Robot computer remote desktop access~~ (*currently unavailable*)
In an X2Go session, go to *Applications>Internet>Remote Viewer>Connection>New* and enter [`vnc://192.168.16.101:5900`](vnc://192.168.16.101:5900)
In an X2Go session, go to *Applications>Internet>Remote Viewer>Connection Address and enter [`vnc://192.168.16.101`](vnc://192.168.16.101)
![remote_viewer](docs/imgs/remote_viewer.png)
## Webcam robot monitoring
* In an X2Go session, via a web browser at [`http://localhost:9999`](http://localhost:9999)
* Locally via a web browser via an SSH tunnel: `ssh -f username@hartmanlab.genetics.uab.edu -L 9999:localhost:9999 -N`
![robot_camera](docs/imgs/robot_camera.png)
## RStudio Server
* In an X2Go session, via a web browser at [`http://localhost:8787`](http://localhost:8787)
* Locally via a web browser via an SSH tunnel: `ssh -f username@hartmanlab.genetics.uab.edu -L 8787:localhost:8787 -N`
## JupyterLab (Python) IDE
![rstudio_server](docs/imgs/rstudio_server.png)
![rstudio_server2](docs/imgs/rstudio_server2.png)
* In an X2Go session, via a web browser at [`http://localhost:8888`](http://localhost:8888)
* Locally via a web browser via an SSH tunnel: `ssh -f username@hartmanlab.genetics.uab.edu -L 8888:localhost:8888 -N`
## Other available software
## Data backup
* [VSCode](https://code.visualstudio.com/)
* [MATLAB](https://www.mathworks.com/help/matlab/index.html)
* [Jupyter Notebook](https://jupyter.org/)
* [`qhtcp-workflow`](https://github.com/UAB-Hartman-Lab/qhtcp)
* [`podman`](https://podman.io/) (containers)
* [`toolbox`](https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) for custom software
* [`distrobox`](https://github.com/89luca89/distrobox) for custom environments
* ...and much more ([open an issue](https://github.com/UAB-Hartman-Lab/server/issues) for software requests)
## Data backups
[`rsync`](https://linux.die.net/man/1/rsync) is recommended for periodically backing up user files to a local client.
* Copy a user's `$HOME`' directory locally to `/home-backup`: `rsync -azH --delete username@hartmanlab.genetics.uab.edu:/home/username/ home-backup/`
* Copy a shared directory locally `rsync -azh username@hartmanlab.genetics.uab.edu:/mnt/data/scans/20250723_roessler_project .`
* Copy a user's `$HOME`' directory locally to `/home-backup` from a client: `rsync -azH --delete username@hartmanlab.genetics.uab.edu:/home/username/ home-backup/`
* Copy a shared directory locally to the current directory from a client: `rsync -azh username@hartmanlab.genetics.uab.edu:/mnt/data/scans/20250723_roessler_project .`
There are other tools installed for initiating backups *from* the server, such as `rsnapshot` and `borgbackup`.
## Troubleshooting
@@ -132,7 +147,7 @@ In an X2Go session, go to *Applications>Internet>Remote Viewer>Connection>New* a
* [Explainshell](https://explainshell.com/)
* [UAB Cheaha](https://docs.uabgrid.uab.edu/wiki/Cheaha_GettingStarted)
## Platform
## Hardware Platform
* AlmaLinux 9.6 w/ Linux 6.1 LTS Hyperscale SIG kernel
* Intel Xeon X99 E5-2650v4 12-core CPU

View File

@@ -0,0 +1,6 @@
[Desktop Entry]
Encoding=UTF-8
Name=Hartman Lab Server Manual
Type=Link
URL=https://github.com/UAB-Hartman-Lab/server
Icon=help-browser

BIN
docs/imgs/remote_viewer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/imgs/robot_camera.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

BIN
docs/imgs/samba.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -4,14 +4,13 @@
# Licensed under the Apache License, Version 2.0
p="${BASH_SOURCE[0]%/*}"; [[ -r $p/script-functions ]] && . "$p"/script-functions || exit 1
echo "Usage: sudo $0 [username] [password]"
echo "Usage: sudo $0 [username]"
is_root
case $# in
0) user=$(prompt user); password=$(prompt password) ;;
1) user="$1"; password=$(prompt password) ;;
2) user="$1"; password="$2" ;;
0) user=$(prompt user) ;;
1) user="$1" ;;
*) echo "Too many arguments provided"; exit 1 ;;
esac
@@ -19,9 +18,12 @@ useradd_cmd=(useradd -m -U)
if id -u "$user" &>/dev/null; then
ask_ok "User $user exists. Run script-user-remove first?" || exit $?
"$p/script-user-remove" "$user" || exit $?
script-user-remove "$user" || exit $?
fi
# Generate random temporary password to provide to user
password=$(tr -dc 'A-HJ-NP-Za-km-z2-9' </dev/urandom | head -c12)
ask_ok "Create user $user with password $password?" || exit $?
restore=0
@@ -64,6 +66,5 @@ ask_ok "Prompt user to reset password on next login?" &&
# Copy manual to user desktop
desktop="/home/$user/Desktop"
mkdir -p "$desktop"
"$p/script-deploy-manual" "$user"
exit 0