📁 My Files
| Name | Size | Uploaded |
|---|
📦 No files yet — upload one above!
📝 Notes
📝 No notes yet — create your first one!
✅ Todo List
🎉 Nothing to do. Enjoy!
📦 Repositories
🔍 No repositories found.
General
Danger zone
Deleting a repository removes its files, commits, releases and issues forever.
🚀 Deploy to a Server
Install this panel on a remote Linux server: packages, app, systemd service,
nginx reverse proxy and a Let's Encrypt HTTPS certificate — all set up automatically.
Runs as a dedicated non-root controlpanel user on the server.
New deployment
First admin account on the server
Saved targets
No saved targets yet.
Deployment runs
No deployments yet — fill in the form and press Deploy.
📈 Deployment progress
❓ Help & How-To
👤 Getting started
This panel is your personal dashboard for files, notes, todos and repositories — everything lives on your own machine and is served through this one app.
- First run: use the Register tab to create the first account. The first account automatically becomes the admin.
- More accounts: after the first user exists, registration is closed. The admin can create additional users from the 👥 Users tab.
- Login: enter your username and password. Sessions use a secure token that expires after 12 hours — just log in again when asked.
- Navigate: use the buttons in the top bar to switch between Files, Notes, Todos, Repos and this Help page.
🔒 Privacy & accounts
Every account is fully isolated. Each user only ever sees their own data:
- Your files, notes, todos and repositories are visible only to you.
- Repositories are private to their owner. Other users (even the admin) cannot browse, download, star or modify your repos, and your repos never appear in their lists. Requests for someone else's repo are treated as if it does not exist (404).
- Only the owner of a repo can change files, publish releases or delete it. Only the author (or repo owner) can edit an issue or comment.
- All data access requires a logged-in session; passwords are stored only as bcrypt hashes.
- Share files with other PCs by uploading them here and downloading them after logging in from the other machine.
📁 Files
- Upload: click Upload File or drag & drop files anywhere onto the Files view.
- Download / Delete: use the buttons next to each file.
- Files are stored on disk under random names and are only ever served to the account that uploaded them.
📝 Notes
- Click + New Note, write a title and content, then Save.
- Click an existing note to open and edit it, or delete it from the editor.
- Note content supports markdown (headings, lists, code blocks, links and more).
✅ Todos
- Type a task and press Add (or Enter).
- Click the checkbox to mark a task done; use the delete button to remove it.
📂 Repositories
Repositories are GitHub-style project folders with real files on disk under data/repos/<user>/<repo>/.
- Create: click + New Repository, pick a name (letters, digits,
.-_), and add a description, topics, homepage and license. AREADME.mdis created for you automatically. - Browse: click a repo to open it. The Code tab shows the file tree with the last commit per file; the
README.mdis rendered at the bottom. - Search & filter: use the search box, topic filter and sorting on the repository list. Tick Starred to show only repos you starred.
- Settings: in a repo's Settings tab you can change the description, topics, homepage, license and rename the repository (the on-disk folder is moved too). The Danger Zone deletes the repo permanently.
📄 Code, editing & commits
- Click any file to open a syntax-highlighted viewer (Python, JS/TS, JSON, HTML, CSS, SQL, YAML, Go, Rust, C/C++, Java, Ruby, PHP, Swift, Kotlin and more).
- Press Edit to change the file, type a commit message and hit Commit changes. The save is recorded in the Commits tab like a real git commit.
- Use + Add file and + Folder to create new files and directories, then edit them. Deleting a file or folder is also recorded as a commit.
- Every change bumps the repo's "pushed" time shown on the repository cards.
⬇️ Download & upload
The panel works with plain HTTP endpoints — no git client needed:
- Pull-style: the Download button on any file fetches the raw file, and Download ZIP in a repo's Code tab packs the whole source tree into a GitHub-style archive.
- Push-style: editing files in the browser, adding folders and publishing releases are the "push" operations — they write real files on disk and create commit history entries.
- Files uploaded for sharing live in the Files tab; release packages live in the repo's Releases tab.
🏷 Releases
- Open a repo, go to Releases and click + New Release.
- Give it a tag/version (e.g.
v1.2.0), an optional name, markdown notes, and optionally attach a package (.zip,.tar.gz,.whl,.py,.js,.7z,.rar,.txt,.md). - Download counts are tracked. Like everything else on the panel, releases are visible only to you.
🚩 Issues
- Open issues in a repo's Issues tab to track bugs and ideas; each gets an auto-incrementing number.
- Add markdown comments to discuss an issue, and close or reopen it with the toggle button.
- The repo owner (you) can delete issues and comments.
🚀 Deploy to a server (admin)
The Deploy tab lets the admin install this whole panel on a remote Linux server (Ubuntu, Debian, Fedora, Rocky, Arch, openSUSE…) from right here — no manual SSH work:
- What it needs: the server's IP, SSH port (usually 22) and the root login — either a password or a pasted private key. Optionally a domain pointing at the server plus an email for Let's Encrypt.
- What it does automatically: installs Python, nginx and certbot via the
server's package manager (fetching a portable Python 3.11 when the distro's own
interpreter is too old for the app); creates a dedicated non-root
controlpaneluser; uploads the app; installs all Python dependencies in a venv; writes a freshSECRET_KEY; creates and starts asystemdservice; configures nginx for the domain; and obtains the HTTPS certificate (when DNS already points to the server). - First admin account: tick "Register the first admin account after deploy" and set a username/password — it is created on the server automatically.
- Migrate data: tick "Copy my local data" to move your files, notes, todos and repos along with the app. Any data already on the server is backed up first.
- Watch it work: a live console shows every step (packaging, connecting, uploading, provisioning, nginx, certificate) — you can cancel mid-run. Provisioning runs detached on the server, so a slow package install can't time out; if a deploy is interrupted, just re-deploy and it resumes from where it stopped.
- Save targets: save servers as named profiles for one-click re-deploys. Credentials are only stored if you tick "Also store credentials" — otherwise the password/key is used once and never written anywhere.
- After deploy: open
https://your-domainand log in (orhttp://server-ip:10000if you skipped the domain step). If DNS was not ready yet, the site stays on HTTP — point the domain at the server and runcertbot --nginx -d your-domainon the server to finish the certificate.
⚠️ Limits & tips
- Upload cap: files and release packages are limited to 200 MB each.
- Blocked uploads: executable types (
.exe,.sh,.bat, ...) are refused for the Files area. - Repo names: 1-64 characters, letters/digits/dot/dash/underscore, and not a reserved word such as
new,settings,admin,api. - Login protection: after 10 failed login/register attempts in 5 minutes your IP is paused for a while.
- Tip: set a fixed
SECRET_KEYin.envso sessions survive server restarts (see README). - Tip: the first account is the admin — keep its password safe. Admins manage users but still cannot see other users' data.
👥 User Management
Create new user
| Username | Role | Created |
|---|