Control Panel

Secure file sharing, notes & your own repos

Min 8 characters for new accounts

Control Panel

📁 My Files

📥 Drag & drop files here to upload
NameSizeUploaded

📦 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

    Contents

    👤 Getting started 🔒 Privacy & accounts 📁 Files 📝 Notes ✅ Todos 📂 Repositories 📄 Code, editing & commits ⬇️ Download & upload 🏷 Releases 🚩 Issues 🚀 Deploy to a server ⚠️ Limits & tips

    👤 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. A README.md is 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.md is 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 controlpanel user; uploads the app; installs all Python dependencies in a venv; writes a fresh SECRET_KEY; creates and starts a systemd service; 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-domain and log in (or http://server-ip:10000 if you skipped the domain step). If DNS was not ready yet, the site stays on HTTP — point the domain at the server and run certbot --nginx -d your-domain on 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_KEY in .env so 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

    UsernameRoleCreated

    New Repository

    Add File

    You will be able to edit the contents right after.

    New Folder

    New Release

    New Issue

    New Note