Skip to workspace

CONTROL PANEL

A happy home for
your digital life.

Your files, ideas, and code. Together in a personal
workspace that lives on your own server.

Make yourself at home.

Sign in to your little corner of the internet.

Min 8 characters for new accounts

Your server. Your space. Always yours.

Control Panel

Workspace

Workspace/Dashboard
Connecting

Hello!

A little less scattered. A lot more in control.

Recent activity

Nothing yet — your latest uploads, edits, commits and pushes will appear here.

Make something happen

Everything here belongs to you.

Up next

No open tasks. Enjoy!

My Drive

Drag & drop files anywhere here to upload
NameSize Location TypeModified

Notes

Nothing here yet
Pin your first idea — it stays on your server.

Click anywhere to create a note

Todo List

    Nothing to do. Enjoy!

    A little space to think

    Boards

    Your notes, plans, and next big idea. All in one place.

    Good work starts with a little room.

    Bring your notes together, write by hand, and give your plans some space.

    Made for your mouse, fingers, and pen.
    Saved
    Pen
    Your thinking space

    Start with a thought.

    Write it down. Bring a note. Connect the dots.

    Pen to write · Fingers to move · Pinch to zoom
    Selected
    Fingers move the canvas · Pen writes
    From your workspace

    My notes

    Add a copy to this board. Your original stays in Notes.

    Make it your space

    Pinch with two fingers to zoom. Two-finger tap to undo, three-finger tap to redo. Hold Space to pan with a mouse.

    Sticky note

    A new thinking space

    Sheets

    Spreadsheets are .csv files in your Drive — rename, move or trash them from the Drive view. Formulas are stored as text, so files open in Excel & Google Sheets too.

    fx
    Selected 1 cell

    New spreadsheet

    Repositories

    No repositories found.

    
              

    General

    Collaborators

    Grant other panel accounts access: read (view, open issues), write (edit code, merge), admin (manage collaborators & webhooks).

    Webhooks

    Receive a JSON push event at your URL whenever commits land (via git push or web edits). Optionally signed with HMAC-SHA256.

    Pipeline (run on push)

    A shell script that runs in a fresh clone every time commits land on the default branch — via git push, web edits or pull-request merges. See the run log and status below. Set it to something like pytest || python tests.py.

    Recent runs

    Danger zone

    Deleting a repository removes its files, commits, releases and issues forever.

    Help & How-To

    Contents

    Getting started Privacy & accounts My Drive Notes Todos Whiteboard Sheets Repositories Code, editing & commits Download & upload Releases Issues Fork / copy a repository Pipeline (run on push) Deploying 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. The current platform version is shown in the top-right corner (and at /api/health).

    • 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 Drive, Notes, Todos, Repos and this Help page.

    Privacy & accounts

    Every account is fully isolated. Each user only ever sees their own data:

    • Your Drive files and folders are private until you share them. Notes and todos stay private; repositories follow their collaborator permissions.
    • Repositories are private. Other users (even the admin) cannot browse, download, star or modify your repos unless you share them, and they never appear in other users' lists. Requests for a repo you cannot access are treated as if it does not exist (404).
    • Collaborators you add get exactly the access you grant: read (view/clone/comment), write (edit code, push, merge PRs) or admin (manage access & webhooks). Only the owner can rename or delete the repo.
    • All data access requires a logged-in session; passwords are stored only as bcrypt hashes.
    • Device limit: you can be signed in on at most 5 devices at once (each browser tab counts, since sessions are per-tab). Logging in past the limit simply signs out the least-recently-used device — it sees "Session ended" on its next action. Click the devices icon in the top bar to list your logged-in devices (browser, IP, last seen) and sign any of them out remotely; Logout ends the current device's session. Admins can change the per-user limit (Users → Max devices, 0 = unlimited).
    • Share files with other PCs by uploading them here and downloading them after logging in from the other machine.

    My Drive

    My Drive is your Drive-style file manager:

    • Folders: create folders with New → New folder, nest them, and navigate with the breadcrumb. Drag items onto a folder (or use Move to…) to reorganise.
    • Upload: click New → Upload file or drag & drop files anywhere onto the view — they land in the folder you have open. Live progress cards show each transfer.
    • Grid / list: the toggle button switches between the card grid and a detailed table. Sort by name, last modified, size or type.
    • Search: the search box searches all your files and folders, not just the current one.
    • Share files or whole folders: select an item and click Share, or use its ⋯ → Share menu. Add an existing panel username as a Viewer (preview/download) or Editor (also rename, edit and add content). Folder access includes all existing and future contents. Recipients use Shared with me.
    • Public links: in Share, set General access to Anyone with the link, then copy the link. Visitors can browse and download without signing in, including a folder ZIP. Change to Restricted to revoke the link. Any access inherited from a parent folder must be managed on that parent.
    • Manage access: only owners can share, move or delete items. Trashed items are unavailable to recipients. Shared storage and downloads count toward the owner's limits.
    • Starred: star important files (click the ★ on a card, or use the item menu) and find them under Starred in the left rail. Recent lists your latest files.
    • Select & act: click to select, Ctrl/Cmd-click to add, Shift-click for ranges. The floating bar (or the ⋮ menu / right-click) offers download, move, star, rename and trash — for one item or many at once.
    • Preview: double-click a file to preview it — images (with thumbnails in the grid), video, audio, PDFs, markdown and text/code files render right in the panel.
    • Trash: deleting moves items to Trash first, where you can restore them or delete them forever (or empty the whole trash). Trashed items don't count toward your dashboard stats.
    • Item details: the ⋮ menu → Item details shows size, type, location, dates and star state.
    • 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.

    Board

    • Your thinking space: combine handwriting, sticky notes, typed text, rectangles and arrows on one canvas. Existing boards open as before.
    • Pen and touch: choose a pen color and width. Compatible styluses provide pressure-sensitive ink. Fingers pan by default; pinch to move and zoom. Touches during pen input are ignored. Enable Draw with fingers in Board settings if you want finger drawing.
    • Undo and redo: toolbar buttons, Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z, two-finger tap for undo, three-finger tap for redo. The eraser removes whole ink strokes and shapes. History covers your current editing session.
    • Notes: add a sticky note or text from the dock. My notes brings in a copy of a workspace note. Select an object to move, edit, duplicate, or delete it. Double-click notes to edit; the original workspace note is unchanged.
    • Navigate: use Hand, the mouse wheel, middle mouse or Space+drag to pan. Ctrl/Cmd+wheel zooms at the cursor; Fit frames everything. Tap the zoom percentage to return to 100%.
    • Focus: F or the expand button opens focus mode. Escape exits. Phones use the full screen automatically; the back arrow returns to All boards. Scroll the tool dock horizontally on narrow screens to reach every tool.
    • Settings and export: change the dot grid, finger drawing, pressure, and canvas bounds from the three-dot menu. Export saves the entire board as a PNG.
    • Saving: the header reports save status. Pending changes retry and survive board switches and reloads in the same browser tab. Keep the tab open until all changes are saved. The app needs a server connection to load; pen capabilities depend on your device and browser.
    • Live sync: changes appear in your other logged-in sessions. Boards stay private to your account. Simultaneous edits to the same object use the last accepted update.

    Sheets

    • Spreadsheets in your Drive: every spreadsheet is a plain .csv file in My Drive. Create and open them from the Sheets tab; rename, move, star or trash them from the Drive view like any other file. Formulas are stored as text, so the files also open in Excel & Google Sheets.
    • Editing: click a cell to select it, then just start typing (or double-click / press F2). Enter commits and moves down, Tab moves right, Esc cancels, and Shift+Enter inserts a line break inside the cell. Arrows navigate; hold Shift to extend a selection; click row/column headers to select whole rows or columns.
    • Formulas: start with = in a cell or the formula bar — references like A1 and ranges like A1:B9 work, and formulas can chain off other formulas. Around 40 functions are available: SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, MEDIAN, STDEV, IF, IFERROR, AND/OR/NOT, ROUND family, ABS, SQRT, POWER, MOD, CONCAT, LEN, LEFT/RIGHT/MID, UPPER/LOWER/TRIM, SUBSTITUTE, TODAY/NOW/DATE, COUNTIF, SUMIF and more. Errors show as #DIV/0!, #VALUE!, #NAME? or #REF! (circular references).
    • Copy & paste: Ctrl+C / X / V work anywhere in the sheet view — focus doesn't have to be on the grid. Copying shifts relative references to their new location (copy =A1+B1 one row down and it becomes =A2+B2). Pasted text that looks like a table (a consistent number of columns per line, e.g. copies from Excel / Google Sheets) fills a grid of cells; everything else — plain paragraphs, copied web pages with tab indentation — goes entirely into the focused cell with its line breaks (wrap turns on automatically). Ctrl+Shift+V forces the single-cell behaviour; hold nothing and paste a table to fill the grid.
    • Selection stats: select a range and the status bar shows the sum, average and count of its numbers.
    • Formatting: the second toolbar row formats the whole selection — bold / italic / underline (Ctrl+B / I / U), text & fill colours, alignment, and number formats (integer, 2-decimal, percent, currency). Clear fmt strips formatting. Formatting is saved inside the csv as a special final metadata row — harmless if another app opens the file, and Download always exports a clean csv without it.
    • Undo / redo: Ctrl+Z / Ctrl+Y (or the toolbar arrows) walk back through edits, formatting, pastes, sorting and structure changes.
    • Rows & columns: +Row / +Col insert above / left of the selection; right-click a row or column header for insert & delete. Formulas automatically follow the data when rows or columns are inserted or deleted. Resize a row or column by dragging its header — grab the number/letter anywhere and pull (the thin edge strips work too); whichever header you grab is the one that resizes, and double-clicking a row's edge resets its height.
    • Font size: the Size dropdown sets the text size for the selected cells (10–24 px).
    • Sort: select a range and use A→Z / Z→A to sort it by its first column (numbers sort numerically, blanks sink to the bottom; each row's data and formatting move together). Ranges containing merged cells can't be sorted — unmerge first.
    • Merge cells: select a range and press Merge — the cells combine into one big cell holding the top-left value. Press Merge again (or click any cell inside it) to unmerge. Merges survive insert/delete of rows & columns and are saved with the sheet.
    • Freeze panes: right-click a row or column header and choose Freeze up to row/column N to keep headings visible while you scroll. Unfreeze from the same menu.
    • Find & replace: Ctrl+F (or the Find button / Ctrl+H) opens the find bar — step through matches, replace one, or replace everywhere; it searches cell contents and works on formulas' text.
    • Wrap & borders: Wrap lets long text flow onto several lines inside a cell (ideal with merged cells); Borders draws ink borders around the selected cells.
    • Select all: Ctrl+A selects the entire grid.
    • Saving: Save (or Ctrl+S) writes the sheet to your Drive; the • marker next to the title means unsaved changes. Download grabs the .csv. Need more room? +50 rows / +5 cols extend the grid.
    • Jump: type a cell address (like B7 or A1:C9) in the name box and press Enter.

    Repositories

    Repositories are real git repositories: GitHub-style project folders you can clone, push and pull with VSCode or any git client. Files live on disk under data/repos/<user>/<repo>/.

    • Create: click + New Repository, pick a name (letters, digits, . - _), and add a description, topics, homepage and license. New repos start empty, so your first push always lands cleanly.
    • One-command setup (easiest): every repo page has a setup script (Copy script / View / Download). Run it once inside any project folder: bash setup-<repo>.sh. It runs git init, points origin at the repo — URL and username already baked in — and makes git ask only for your password on every push. Credentials are never stored.
    • Clone from your editor: every repo page also shows the git clone command with a copy button. Git prompts for your panel username & password, then push/pull work exactly like GitHub.
    • 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.
    • Branches: the repo header switches the default branch; Manage opens a branch manager where you can search, create from a branch or commit, see default/ahead/behind/diverged state, set the default, open a PR, jump to the graph, or delete with explicit confirmation. Every branch is pushable/pullable from git.
    • Commits: click any commit to see its message, author and a full per-file diff with +/− line counts. File viewers have History and Blame buttons.
    • Pull requests: the Pull Requests tab opens a PR from one branch into another. Review the commits and diff, comment, then Merge (merge commit or fast-forward). Conflicts are reported for you to resolve in git.
    • Collaborators: in Settings you can share the repo with other panel accounts as Read, Write or Admin. Read users can clone but not push; Write users can edit and merge; Admins manage access & webhooks. Only the owner can rename or delete the repo.
    • Webhooks: in Settings, add URLs to receive a JSON push event whenever commits land (git push, web edits or merges), optionally signed with HMAC-SHA256. Last delivery status is shown.
    • Fork: click 🎽 Fork on any repo you can see to copy it into your account with its full history and branches — then edit it independently. The copy shows a "forked from" chip.
    • Pipeline: in Settings, write a shell script that runs in a fresh clone every time commits land on the default branch (push, web edit or merge). Runs show status and logs right below.
    • Search & filter: use the search box, topic filter and sorting on the repository list. Tick Starred to show only repos you starred.

    Fork / copy a repository

    Forking gives you your own private copy of any repository you can access (your own, or one shared with you).

    • Open the repo and click Fork, then confirm the name (default: <name>-fork).
    • Your copy keeps the full git history and all branches, plus the description, topics and license.
    • The fork is a completely independent repository: edit, push, branch and release in it without affecting the original.
    • A forked from chip in the header shows where it came from.

    Pipeline (run on push)

    Each repository can run one shell script automatically whenever commits land on its default branch — a lightweight CI.

    • Configure: in the repo's Settings → Pipeline, paste a script (e.g. python -m pytest tests/) and tick Enable the pipeline. Owners and admin collaborators can configure it.
    • When it runs: after every git push to the default branch, every web-editor commit, and every pull-request merge.
    • Where it runs: in a fresh clone of your repo, not in the live files. The script's exit code decides success or failure (exit 0 = success).
    • Environment: $CP_REPO (path to the clone), $GIT_COMMIT, $GIT_BRANCH, CI=true. Output is captured.
    • Results: Recent runs appear under the script with status, commit, duration and the full log (click to expand). The script also runs with the same panel permissions as the server, so treat it like any script you would run on this machine.

    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 My Drive; 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.

    Deploying to a server (separate Deployer app)

    Deploying this panel to a remote Linux server is handled by the standalone Deployer app — it is no longer a tab inside this panel:

    • Where: the Deployer has its own UI, usually at http://localhost:10001 (start it with ./run-deployer.sh).
    • Unlock: it asks for a deployer token on first use — the token is printed in the deployer's startup console and stored in deployer/.env.
    • What it does: installs packages, uploads the panel (platform + deployer), creates systemd services, configures nginx and requests a Let's Encrypt certificate — with a live console you can watch and cancel. See the README for the full details.

    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

    UsernameRoleDrive limit Bandwidth / moMax devicesCreated

    Repository

    Branch manager

    0 branches
    Default—
    Other branches0
    Latest update—
    Create a branch Choose a source, name the branch, then create it without leaving the page.

    Deleting removes this branch ref immediately. Commits unique to it can become unreachable, and open pull requests that use it may stop working.

    New Repository

    Logged-in devices

    Devices signed in to your account. You stay signed in on at most the limit below — a new login signs out the least-recently-used device.

    Add File

    You will be able to edit the contents right after.

    New Folder

    New Release

    New Issue

    New Pull Request

    New Note

    0 words Ctrl+Enter save  ·  Esc close

    New folder

    Rename

    Move to…

    Item details

    Share

    People with access

    Viewers can preview and download. Editors can also rename, edit files, and add content to folders. Only the owner can move, delete, or manage sharing.

    General access

    Changes save immediately