3.1 KiB
ekho
Needlessly Networked MOTD generator
Why?
To test my abilities to develop networked programs, and to enhance my skills in writing such.
Requirements
Hardware
- Client machine
- Server machine (not required to be distinct from Client)
Software
- Tested with golang v1.26
- Installation has only been tested with just v1.53
- Server installation assumes systemd (tested with v260.2)
Installation
Clone the repo
git clone https://github.com/alexander-the-alright/ekho
cd ekho
Justfile
It is recommended to use just for installation, as it has more
capabilities than make, however, there is a makefile included.
To install the server with just, run sudo just ins_server.
You will be prompted to enter a new port number to run the server on (
or leave blank to use 1300). The port will be changed in the source
file before compilation.
To install the client with just, run sudo just ins_client.
You will be prompted to enter the IP (or URL) and port of the server
(or leave blank to use localhost:1300). The IP/URL and port will be
changed in the source file before compilation.
Makefile
If you are unable or willing to use just, the included makefile
still has most of the functionality, but it does not change any
important parameters. The following changes are advised before
installation.
- On the client machine, change the IP/URL and port in the client source file. This can be
done quickly with
sed -i -e "s/127.0.0.1:1300/YOUR.IP.GOES.HERE:PORT/" client.go - On the server machine, change the port in the server source file. This can be done with a
similar command:
sed -i -e "s/1300/PORT/" server.go. (note: this should match the port from bullet 1) - On the server machine, change the user referenced in the systemd service file. This can be
done with another sed command,
sed -e -i "s/USER/YOUR_USERNAME/" ekho.service
After making these changes on the respective machines, run either
sudo make ins_client or sudo make ins_server to compile and install the client
and/or server binaries.
After Installation
After installation of the server binary, systemd will display the
status of the new service. It should be enabled and
running.
Finally done!
Usage
The client uses the following flags
-h - display help message
-a <string> - adds required argument <s> as a quote to server
-ip <ip:port> - specify alternate server destination
-l - list all quotes
-r [i] - remove; may be run with or without argument
-s <i> - specify the size of the receipt buffer
The server uses the following flags
-h - display help message
-s <i> - specify the size of the receipt buffer
-v - display version and exit
-vv - display version and about info and exit
To Be Implemented
- Log all uses/transaction data each day
- Request, send, and receive the logfile
- User-specific quotes/quotefiles
- Colored printing and coloring quotes
- Edit quotes