Compare commits
5 Commits
9451d8f923
...
bff68aa4e1
| Author | SHA1 | Date | |
|---|---|---|---|
| bff68aa4e1 | |||
| 0016f83821 | |||
| 01a7db7a1c | |||
| f7fa0de24c | |||
| 97eb4bff88 |
55
README.md
55
README.md
@@ -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`):
|
||||

|
||||
* Linux/OSX/Windows
|
||||
* [Filezilla](https://filezilla-project.org/download.php?type=client)
|
||||
|
||||
* [Filezilla](https://filezilla-project.org/download.php?type=client) (Linux/OSX/Windows)
|
||||

|
||||
* [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`.
|
||||
|
||||

|
||||
|
||||
## `x2goclient`
|
||||
|
||||

|
||||
@@ -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)
|
||||
|
||||

|
||||
|
||||
## 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`
|
||||
|
||||

|
||||
|
||||
## 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
|
||||

|
||||

|
||||
|
||||
* 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
|
||||
|
||||
6
config/etc/skel/Desktop/manual.desktop
Normal file
6
config/etc/skel/Desktop/manual.desktop
Normal 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
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
BIN
docs/imgs/robot_camera.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 834 KiB |
BIN
docs/imgs/rstudio_server.png
Normal file
BIN
docs/imgs/rstudio_server.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
BIN
docs/imgs/rstudio_server2.png
Normal file
BIN
docs/imgs/rstudio_server2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 220 KiB |
BIN
docs/imgs/samba.png
Normal file
BIN
docs/imgs/samba.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -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
|
||||
Reference in New Issue
Block a user