Skip to content

MertJSX/folderhost

image

Go Language Latest Release License Downloads Docker pulls

Self-hosted cloud platform in a single binary - Share files, collaborate in real-time, and manage users with zero dependencies.

No Dependencies Required!

Lightweight: Windows / Linux ~19MB


Overview

FolderHost is a self-hosted cloud platform that allows you to store, manage, share and collaborate on files with other users. It is built with Go backend and React frontend, and is designed to be lightweight and easy to use. FolderHost is a great alternative to Nextcloud for users who want a simple and efficient file sharing solution. It has many features such as file management, user management, real-time collaboration, recovery bin, logs and more. Currently it's not made to be used for mobile devices, but I will try to make it mobile friendly in the future. You can check all the features from below.


Screenshots

Here you can view some screenshots of the web client. These are screenshots from my cloud that I'm using to manage my Minecraft server:

image
More Screenshots image image image image

Installation

There are 2 possible ways to run FolderHost. The first one is using Docker, and the second one is by downloading the binary for your operating system. If you want a more secure and more popular way to run FolderHost, I'd suggest you to use Docker. But if you don't want to use Docker, just download the binary for your OS and run it. There are no dependencies to run the binary. Lots of people use docker, but for me the better way is using the binary. Because there are no dependencies and it's lightweight. But, it's up to you. You can check the instructions below.


Download Latest Release

Docker

# Run container, you can access the files using docker volumes
  docker run -d \
    --name folderhost-server \
    -p 5000:5000 \
    -v folderhost_data:/app \
    --restart unless-stopped \
    mertjsx/folderhost:latest

Binary Installation

First of all you need to create a folder to store your files and the binary. Then you can run the binary. Otherwise it's going to create a lot of files in your current directory. This is just for the ones that don't want to use docker.

Windows

Go to the releases install the latest windows version then run the binary inside that folder.

# Download the .exe, then:
folderhost.exe # or just double click it.

Linux

Don't forget to create a folder for the binary, and run the binary in that folder.

Just copy and paste this and folderhost will start working. It's around 19 mb for linux.

wget https://github.com/MertJSX/folderhost/releases/latest/download/folderhost-linux-amd64.tar.gz
tar -xzf folderhost-linux-amd64.tar.gz
chmod +x folderhost-linux-amd64
rm -rf folderhost-linux-amd64.tar.gz

# Run
./folderhost-linux-amd64

Documentation

There is a simple documentation page that explains how to use FolderHost. You can access it from the website of the FolderHost. The program itself is so simple. There is basically nothing to explain. The configuration file has it's own comments describing what each field does. If you have any additional questions, you can open an issue or discussion on GitHub. I usually reply in a few hours but it might take a day or two depending on my schedule.


Why FolderHost?

Lightweight alternative to Nextcloud - Get the same file sharing features without the complexity.

Feature FolderHost Nextcloud
Binary Size ~19MB 200MB+
Dependencies None PHP+Database
Setup Time 30 seconds 15+ minutes
Single Binary Yes No
Real-time Editing Yes No
Easy Setup Yes No

Features

Core

  • Single Binary Deployment - No dependencies, just run
  • High Performance - Built with Go backend + React frontend
  • Real-time Collaboration - Live code editing with Monaco Editor
  • Multi-user Support - Permissions system

File Management

  • Full file operations (upload, download, move, copy, rename)
  • Chunked file uploads for large files
  • Recovery bin with configurable limits

Security & Monitoring

  • JWT-based authentication
  • Granular user permissions
  • Audit logs for all activities
  • Configurable storage limits

Configuration

If you encounter any issues or have questions, please feel free to open an issue or provide feedback. Your input is highly appreciated!

On first run, a config.yml file will be created. Edit it to customize, don't forget to change admin password:

Show config
#      _______   __   __
#     / _____/  / /  / /
#    / /__     / /__/ /
#   / ___/    / ___  /
#  / /       / /  / /
# /_/       /_/  /_/  By MertJSX
#
# Thanks for using my application!!! Please report if you catch any bugs!
# Here is the GitHub page of FolderHost: https://github.com/MertJSX/folderhost
# Contact for security vulnerabilities: contact@mertsami.com
version: "v26.6.2"

# Port is required. Don't delete it!
port: 5000

# This is folder path. You can change it, but don't delete.
folder: "./host"

# Limit of the folder. Examples: 10 GB, 300 MB, 5.5 GB, 1 TB...
# You can remove it if you trust users.
storage_limit: "10 GB"

# This is secret json web token key to create tokens. If you don't have one, it will be autogenerated.
secret_jwt_key: "auto"

# Admin account properties
admin:
username: "admin"
password: "123"
email: "example@email.com"
scope: "" # for example "/yourfolder", this attribute will set a specific location for user and he cannot escape it
permissions:
  read_directories: true
  read_files: true
  create: true
  change: true
  delete: true
  move: true
  download: true
  upload: true
  rename: true
  extract: true
  archive: true
  copy: true
  read_recovery: true
  use_recovery: true
  read_users: true
  edit_users: true
  read_logs: true

# Holds deleted files. Accidentally, you might delete files that you don't want to delete.
recovery_bin: true

# Optionally you can limit recovery_bin storage. You can remove it if you want.
bin_storage_limit: "5 GB"

# Enable/Disable logging activities
log_activities: true

# Clears logs automatically after some days. If you want to disable it set the value to 0.
clear_logs_after: 7 # Days

# -------------------------------------------------------------
# SSL / HTTPS Configuration
# -------------------------------------------------------------
ssl:
enabled: false

# Mode determines how the SSL certificate is generated:
# "self_signed" -> (Recommended for local networks) Automatically generates a certificate. No domain required.
# "letsencrypt" -> (For public websites) Gets a free, valid certificate. Requires a real domain and open port 80/443.
type: "self_signed"

# Let's Encrypt Settings (Only required if type is "letsencrypt")
domains:
  - example.com
email: "admin@example.com"

Default Access

Once running, open your browser to:

http://localhost:5000

Default credentials: admin / 123 (Change them from config.yml file)

View All ReleasesReport IssuesChangelog


Security suggestions

The security setup for a cloud storage like FolderHost is very important. I've added some important security features to defend against attacks. But always add your own security measures too, like Cloudflare, SSL, and etc. You can try to change the default port to make it harder to find the server. For the admin account, change the username and password!

JWT tokens here are very secure. They have only 24 hours validity. But it saves your last login IP, last login user-agent, browser etc. To prevent attackers from stealing your token and logging in as you. That means even if they steal your token, they can't login as you because it will detect that it's not your IP, User-Agent etc. The con of this feature is that if you login from another device, you will be logged out of the previous device. So you can't use one account for different users. I would suggest you to create different accounts for each user, even if they don't have a special folder.

For a 100% security you can make your FolderHost server local and only connect to it using SSH tunnels or VPNs.


Contributing

Contributions are welcome! Please feel free to submit a Pull Request. You can look for Contributing information HERE!


License

The current license is GPL-3.0 License. I like open-source things, so I decided to release this project under GPL-3.0 License. It's not gonna be changed. I'm open to new ideas and contributions.


Credits

Built with ❤️ by MertJSX

Contributors

Tech Stack:

  • Backend: Go
  • Frontend: React + TypeScript + Vite
  • Editor: Monaco Editor
  • Database: SQLite