Hey, baby, I like it rawww...
Shimmy shimmy ya, shimmy yam, shimmy yay
— Ol' Dirty Bastard "Shimmy Shimmy Ya"
A fully interactive contact form accessible via SSH, designed for secure and efficient communication without a web interface.
- Fully configurable using environment variable
- Input validation
- Navigation using Tab/Shift-Tab
- Email submission to the configured address
- Advanced anti-spam using last CAPTCHA technology
- Satisfying animation to celebrate a successful submission
The configuration can be customized by setting the appropriate values in a .env file or directly through the environment.
Type: string
Default: "WELCOME TO SSH FORM"
This sets the welcome banner that is displayed when a user connects to the form over SSH.
Example:
BANNER="\n\nWELCOME TO MY CUSTOM SSH FORM\n\n"
Type: string
Default: "localhost"
Defines the SSH server host.
Example:
SERVER_HOST="0.0.0.0"
Type: integer
Default: 2222
The port on which the SSH server listens.
Example:
SERVER_PORT=2222
Type: string
Default: ".ssh/term_info_ed25519"
Path to the SSH server private key. This key is required to authenticate SSH connections.
Example:
SERVER_KEY_PATH="/path/to/your/ssh_key"
Type: string
Default: "{name} <{email}>\n{content}"
The format of the email body that will be sent upon form submission.
You can use placeholders {name}, {email}, and {content} that will be replaced by form values.
Example:
EMAIL_BODY="Name: {name}\nEmail: {email}\nMessage: {content}"
Type: string
Default: "/usr/sbin/sendmail"
Command to send the email. By default, it uses the sendmail utility, but you can specify another mailer.
Example:
EMAIL_EXEC="/usr/bin/mail"
Type: string
Default: ""
Optional arguments to pass to the email command when sending the message.
Example:
EMAIL_ARGS="-s 'Contact Form Submission'"
Here’s an example .env file that sets up a custom banner, server host, and email body:
BANNER="\n\nWELCOME TO MY SSH CONTACT FORM\n\n"
SERVER_HOST="0.0.0.0"
SERVER_PORT=2222
SERVER_KEY_PATH="/etc/ssh/my_server_key"
EMAIL_BODY="New message from {name}: {content}"
EMAIL_EXEC="/usr/bin/mail"
EMAIL_ARGS="-s 'New Contact Submission'"
- charmbracelet/lipgloss: Style definitions for terminal UIs, designed to build sophisticated, customizable terminal user interfaces.
- charmbracelet/bubbletea: A functional Go framework for building rich terminal user interfaces based on the Elm architecture.
- charmbracelet/bubbles: Components for Bubble Tea, providing reusable UI elements for terminal applications.
- maaslalani/confetty: Confetti in your terminal, a fun way to celebrate inside the command line interface.
- charmbracelet/wish: SSH-based remote shell and terminal UIs with an easy-to-use framework.
- joho/godotenv: A Go library for managing environment variables from
.env
files.