MCPcopy Index your code
hub / github.com/MertJSX/folderhost

github.com/MertJSX/folderhost @v26.6.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v26.6.2 ↗ · + Follow
366 symbols 1,222 edges 191 files 2 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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, 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:

image

More Screenshots

<img width="700px" alt="image" src="https://github.com/user-attachments/assets/97a3afeb-0f43-488f-b31a-7c616687c988" />
<img width="700px" alt="image" src="https://github.com/user-attachments/assets/04286979-6bd9-4c02-92a1-b994242fc576" />
<img width="700px" alt="image" src="https://github.com/user-attachments/assets/ca462852-6fae-4ec2-9479-af7f3e3a09a1" />
<img width="700px" alt="image" src="https://github.com/user-attachments/assets/9b23c9f4-5bc0-4e61-becd-c3cee71e2150" />

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

```yml

_ __ __

/ _____/ / / / /

/ / / // /

/ ___/ / ___ /

/ / / / / /

// // /_/ 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

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 user can't 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





**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

  • Simeon / @simeonnv (Github: https://github.com/simeonnv)
  • Ömer Açıkgöz / @Omeracix (Github: https://github.com/Omeracix)

Tech Stack:

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

Extension points exported contracts — how you extend this code

ServicePermissions (Interface)
(no doc)
web/src/types/ServicePermissions.ts
ServiceWSLog (Interface)
(no doc)
web/src/types/ServiceWSLog.ts
ContextMenuType (Interface)
(no doc)
web/src/types/ContextMenuType.ts
DirectoryItem (Interface)
(no doc)
web/src/types/DirectoryItem.ts
AccountPermissions (Interface)
(no doc)
web/src/types/AccountPermissions.ts

Core symbols most depended-on inside this repo

Get
called by 49
utils/cache/get.go
GetScopedFolder
called by 40
types/config_file.go
handlePermissionChange
called by 34
web/src/pages/NewUser/NewUser.tsx
CreateLog
called by 27
database/logs/create_log.go
readDir
called by 25
web/src/pages/ExplorerPage/Explorer.tsx
Set
called by 24
utils/cache/set.go
Delete
called by 16
utils/cache/delete.go
IsNotExistingPath
called by 15
utils/path_queries.go

Shape

Function 269
Struct 34
Method 32
Interface 31

Languages

Go62%
TypeScript38%

Modules by API surface

web/src/pages/ExplorerPage/Explorer.tsx18 symbols
utils/service_utils/service_manager.go14 symbols
web/src/components/FileExplorer/FileExplorer.tsx10 symbols
utils/web_socket_clients.go10 symbols
web/src/components/FileViewer/ImageViewer.tsx9 symbols
utils/service_utils/service_types.go9 symbols
utils/service_utils/service_functions.go8 symbols
middleware/websocket/file_editor.go7 symbols
web/src/components/UploadItem/UploadItem.tsx6 symbols
utils/version_checker.go6 symbols
test/cache_test.go6 symbols
web/src/components/FileViewer/FileViewer.tsx5 symbols

For agents

$ claude mcp add folderhost \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact