TIFTA: Tiny Interactive File Transfer Application
This repository holds all the source code, tests and documentation of the TIFTA software. The main goals of this program are:
- Ensure a safe and secure connection via SSH.
- Take advantage of SSH to establish an SFTP secure channel.
- Allow users to upload, download and remove files from remote server.
The TIFTA software is nuder heavy development and ships in the form of a command line application. No graphical user interface is provided yet.
How to install
For users
If you would like to install TIFTA software, start by creating a new Python environment and activate it. This is a good practice so you do no break your system's Python installation:
python -m venv -venv && source .venv/bin/activate
Make sure you upgrade to the latest pip
version by running:
python -m pip install -U pip
Finally, you can install TIFTA by running the following:
python -m pip install git+https://github.com/jorgepiloto/tifta.git
Now you should be able to run TIFTA in any working directory of your system as long as your new Python environment is active. Try:
tifta --help
Finally, generate a new fresh TIFTA configuration by running:
tifta config clean
For developers
Start by cloning the repository within your local machine. Installation process only differs when installing the package, as you need now to pass the --editable
flag:
python -m pip install -e /path/to/tifta/cloned/repo
How to use
Make sure that your client is properly configured and points to the right server. You can see tifta client configuration by running:
cat ~/.tifta/conf/client.conf
Add or modify any existing varname or value using:
tifta config client varname "valuename"
as an example:
tifta config client hostname "192.168.X.X" # For local networks (usually).
tifta config client username "runner" # For GitHub CI virtual machines.
Do not store server's password in your config files: TIFTA will ask you to input your password if required at any time!
When operating files within a server, all paths are assumed to be relative to server's home/
directory. Furthermore, you need to specity the final name of the uploaded/downloaded/removed/ files.. Examples:
tifta upload path/to/local/file.txt path/to/remote/uploaded_file.txt # Uploads file to server
tifta download path/to/remote/file.txt path/to/remote/downloaded_file.txt # Downloads file from server
tifta remove path/to/remote/file.txt # Removes file from server
TIFTA CLI is properly documented, so you can always run:
tifta upload --help
tifta download --help
tifta remove --help
in case you need more help.