iPhone-Linux Transfer Service
A web-based application for transferring files and links between iPhone and Linux devices with a secure and user-friendly interface.
Features
- Upload and manage links and files: Upload HTML links, images, and other files from your device.
- Secure authentication: User login with salted and hashed password storage for enhanced security.
- Automatic lockout: Users are locked out after multiple unsuccessful login attempts.
- Device identification: Uploaders are identified by device type and IP address.
Table of Contents
Installation
Prerequisites
- Python 3.x
pip(Python package installer)venvmodule for creating virtual environments- Required binaries:
flask,sqlite3,curl,openssl
Automated Installation
-
Clone this repository: git clone https://github.com/kleinpanic/iphone-linux-transfer.git cd iphone-linux-transfer
-
Run the installation script: ./install.sh This script will:
- Check for the
venvmodule and attempt installation if missing - Check for required binaries and prompt you to install any that are missing
- Set up a virtual environment and install all Python dependencies
- Check for the
Manual Installation
If you'd prefer to install everything manually, follow these steps:
-
Install Python 3.x and
venv. -
Create a virtual environment: python3 -m venv venv
-
Activate the virtual environment:
- Linux/Mac:
source venv/bin/activate
- Linux/Mac:
-
Install the required Python packages: pip install -r requirements.txt
Usage
-
Activate the virtual environment:
- Linux/Mac:
source venv/bin/activate
- Linux/Mac:
-
Start the application: python app.py The application will run on
https://127.0.0.1:5000by default. -
Access the application:
- Open your browser and go to
https://127.0.0.1:5000.
- Open your browser and go to
Available Features
- Uploading: Upload links, images, and other files.
- Downloading: Download uploaded content.
- Renaming: Rename uploaded files.
- Preview: Preview uploaded images directly from the app.
- Delete: Delete uploaded content.
- Curl: compable with curl ideally.
Database Reset
To start fresh with a new database setup, you can use the reset script provided:
- Ensure your virtual environment is activated: source venv/bin/activate
- Run the reset script:
python reset_db.py
This will:
- Remove all existing entries from the database
- Reinitialize the tables for users and uploads
Note: Use this command with caution as it will remove all existing data.
Security
- Passwords are salted and hashed before being stored.
- After 3 unsuccessful login attempts, users are locked out, and their IP address is recorded in
locked_ips.txt. - To unlock a user, manually remove their IP from
locked_ips.txt.
Dependencies
This project requires the following:
- Python Packages (specified in
requirements.txt)FlaskWerkzeug- Other packages as needed by your project
- System Binaries
flasksqlite3curlopenssl
Known Issues
- The application is currently set up for development use. It is not secure for deployment in a production environment.
- Make sure you properly configure your firewall and network settings when using this application on a publicly accessible server.
Contributing
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository on GitHub.
- Clone your fork: git clone https://github.com/yourusername/iphone-linux-transfer.git
- Create a new branch for your feature or bug fix: git checkout -b feature-name
- Make your changes, commit them, and push to your fork: git add . git commit -m "Description of your changes" git push origin feature-name
- Open a Pull Request on the main repository.
License
This project is licensed under the MIT License. Do whatever the fuck you want with it.
Support
For any issues or suggestions, please open an issue on the GitHub repository or contact me directly.