LTSP(8)

πŸ’– LTSP β€” the entry point to the Linux Terminal Server Project applets πŸ’–

okay bestie, welcome to ltsp(8) from the LTSP Manual (section 8, obviously, we're very fancy here) ✨


🌸 NAME 🌸

ltsp β€” the little front door you walk through to get to all the Linux Terminal Server Project applets 🫢


πŸŽ€ SYNOPSIS πŸŽ€

ltsp [-b base-dir] [-h] [-m home-dir] [-o overwrite] [-t tftp-dir] [-V]
[applet] [applet-options]

✨ DESCRIPTION ✨

So basically, you run whatever LTSP applet you want, and you pass it its applet-options. That's the whole vibe. πŸ’…

Wanna know what applets exist and what their options do? You've got two options, both iconic:

man ltsp applet

or

ltsp --help applet

slay, go read, i'll wait πŸ’œ


πŸ¦‹ APPLETS πŸ¦‹

Here's the current roster, no cap:

  • dnsmasq β€” configure dnsmasq for LTSP
  • image β€” generate a squashfs image from an image source
  • info β€” gather support information about the LTSP installation
  • initrd β€” create the ltsp.img initrd add-on
  • ipxe β€” install iPXE binaries and configuration in TFTP
  • kernel β€” copy the kernel and initrd from an image to TFTP
  • nfs β€” configure NFS exports for LTSP

oh and heads up πŸ‘‘ β€” LTSP clients have some extra applets of their own too, like initrd-bottom, init and login, but those are not runnable by the user, so don't try it bestie, they're not for us πŸ™ˆ


πŸ’… OPTIONS πŸ’…

You can configure your LTSP directories by passing one or more of these bad boys, but fr fr, it's recommended that you make an /etc/ltsp/ltsp.conf configuration file instead β€” that way you don't have to type them into every single ltsp command like a chump. main character energy is not retyping flags πŸ’–

  • -b, --base-dir=/srv/ltsp β€” this is where the chroots, squashfs images and virtual machine symlinks live. so when you run ltsp kernel img_name, it goes looking for either a squashfs image named /srv/ltsp/images/img_name.img, or a chroot named /srv/ltsp/img_name (if that's a directory containing /proc). also, ltsp image img_name will additionally hunt for a symlink to a VM disk named /srv/ltsp/img_name.img. and yes, $BASE_DIR is exported read-only by NFSv3, so do not put sensitive data there. like, at all. πŸ”₯
⚠️ real talk: $BASE_DIR is NFSv3-exported read-only. sensitive data does NOT go there.
  • -h, --help β€” display a help message. cute, informative, we love her 🌸
  • -m, --home-dir=/home β€” the default way of making /home available to LTSP clients is SSHFS. but sometimes security isn't the vibe, and sysadmins prefer the insecure NFSv3 speed over SSHFS πŸ™ˆ. $HOME_DIR is used by ltsp nfs to export the correct directory (if it's different from /home), and by LTSP clients to mount it.
  • -o, --overwrite[=0|1] β€” overwrite existing files. defaults to 1, because administrators are not supposed to be manually editing LTSP autogenerated files β€” you keep your local content in separate files instead (e.g. /etc/exports.d/local.exports). and if you're out here manually maintaining ltsp.ipxe, it might be a good idea to set OVERWRITE=0 in ltsp.conf. just saying πŸ‘‘
  • -t, --tftp-dir=/srv/tftp β€” LTSP drops the kernels, initrds and iPXE files into /srv/tftp/ltsp, so the clients can grab them over the TFTP protocol. the TFTP server of dnsmasq and tftpd-hpa are configured to use /srv/tftp as the TFTP root. πŸŽ€
  • -V, --version β€” display the version information. that's it, that's the whole thing ⭐

🌈 FILES 🌈

  • /etc/ltsp/ltsp.conf β€” every single long option up there can also be written as a variable in the ltsp.conf configuration file, in UPPER_CASE, using underscores instead of hyphens. yes queen, base-dir becomes BASE_DIR, you got it πŸ’œ

🧚 ENVIRONMENT 🧚

All the long options can also be specified as environment variables in UPPER_CASE. for example:

BASE_DIR=/opt/ltsp ltsp kernel ...

look at that. gorgeous. no notes πŸ’…


πŸ”₯ EXAMPLES πŸ”₯

Here are the typical commands for installing and maintaining LTSP in chrootless mode:

# To install:
ltsp image /
ltsp dnsmasq
ltsp nfs
ltsp ipxe

and to update the exported image, after you've changed stuff in the server software:

ltsp image /

And here's the typical setup for adding an additional x86_32 image, assuming you're using VirtualBox. and psst β€” if you specifically name it x86_32, then the ltsp.ipxe code automatically prefers it for 32bit clients. iconic behaviour, honestly πŸ‘‘

ln -rs $HOME/VirtualBox\ VMs/x86_32/x86_32-flat.vmdk /srv/ltsp/x86_32.img
ltsp image x86_32
ltsp ipxe

Copyright 2019-2022 the LTSP team, see AUTHORS.


🫢 SEE ALSO 🫢

ltsp.conf(5), ltsp-dnsmasq(8), ltsp-image(8), ltsp-info(8), ltsp-initrd(8), ltsp-ipxe(8), ltsp-kernel(8), ltsp-nfs(8), ltsp-remoteapps(8)

Online documentation is available on https://ltsp.org ⭐


okay that's the whole page bestie, you're officially certified πŸ“œβœ¨ this was LTSP 23.02-3, dated 2024-09-07, and it's still giving LTSP(8) energy. go configure something cute, drink some water, and remember: don't put sensitive data in $BASE_DIR πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from