Access educational resources efficiently
Cloud workspace
A private Firefox session with a clean slate, ready when you are — your tabs and history are saved for next time.
Your session is private and automatically cleared when it ends.
Listen together
A real Spotify session, logged in as you — your account stays saved for next time.
Your session is private and automatically cleared when it ends.
Low-latency play
A place to run the Parsec client from — log in and connect to whatever machine you've paired it with.
Your session is private and automatically cleared when it ends.
Gaming browser
A private Opera GX session, ready when you are — your bookmarks, extensions, and browsing stay saved for next time.
Your session is private and automatically cleared when it ends.
Play instantly. Save downloads a standalone HTML file — works offline forever, no internet needed.
Sites available to all students. Click to open in a new tab.
Turn the portal into a real mobile app experience — bottom tab bar, full-screen views, and native-style navigation. Stays on until you turn it off.
Choose how the whole portal looks and feels. Your choice is saved and works with all themes.
Customize shortcuts to open the active tab in a new window. Ctrl+M (Admin) and Ctrl+K (Quick Launch) are always fixed.
Choose which streaming provider to use in the Movies tab. If one source is down or slow, switch to another. Your choice is saved.
A default key is already configured — the Movies tab works out of the box. Override here only if needed. Free keys at themoviedb.org/settings/api.
Choose a theme or set a custom background color or image.
Stream movies and shows through the proxy.
Browser games that work without a login.
Real headlines from Google News, updated live
Ask a question, get a real web-searched answer with cited sources
Search YouTube or paste a link to download MP4 · powered by Cobalt
Deploy HTML websites instantly — share them with anyone
Click Manage on any site for files, analytics, version history, and settings.
Loading...
Your in-portal currency and digital passes
Chat with other portal users — keep it school-appropriate
The people who keep this portal running — moderators, admins, developers, and supporters.
Share your link — earn bits for every new signup
Spend your bits on these exclusive rewards — admin must approve delivery.
Top users by bits earned, messages sent, and referrals
Loading...
Join topic rooms, talk with classmates, whiteboard together
Loading rooms...
Collaborate on a shared whiteboard in real time. Draw, sketch, annotate.
Spend bits in real life — debit, credit, and black card tiers
You don't have a card yet. Apply for a free debit card or ask an admin for a credit or black card.
Credit & Black Cards are issued by admins only
Woodford County Schools
Main admin: use Ctrl+M to open
| Name | Email / ID | Tabs Opened | Tier | 🪙 Bits | 🔒 Proxy | 🔥 OG | IP | Status | Actions |
|---|---|---|---|---|---|---|---|---|---|
👥 No users tracked yet | |||||||||
Internal admin-only chat. You can @mention users (they will receive a ping notification).
Sub-admins log in via Ctrl+M using their school email + account password. They can use all admin functions except granting sub-admin access. Only the main admin can manage this list.
Auto-refreshes every 5 seconds • Shows all open tabs by user
No tabs opened yet
Add or remove sites from the TV, Music, Web Games, and Cloud Gaming tabs.
| Tab | Name | URL | Actions |
|---|
Blocked domains are enforced by the server. Any URL matching these domains will be blocked for all users (admins bypass with token).
| Domain | Added | Actions |
|---|---|---|
🚫 No custom blocks yet | ||
Sites shown in the Public Sites tab. Add via Site Manager above (select "📋 Public Sites").
Loading...
View all messages including blocked/flagged ones. Delete any message from Global Chat.
| User | Message | Time | Status | Actions |
|---|---|---|---|---|
💬 No messages yet | ||||
Edit URLs, status, SSH info, and notes for each Development tab tool.
Blacklisted users can still log in but are blocked from the specific feature.
Manage the people shown on the Contributors page. Categories: Owner, Admin, Moderator, Developer, Supporter, or any custom label.
Recent admin and user actions.
| Time | Action | Detail | IP |
|---|---|---|---|
📜 No entries yet | |||
Set a banner shown at the top of the portal for all users. Leave blank to clear it.
Global server configuration. Changes take effect immediately.
AI features. Free at build.nvidia.com
Movies tab. Free at themoviedb.org
Chat GIFs. Free at developers.giphy.com
Sports odds. Free at the-odds-api.com
Live scores + highlights ($9/mo at thesportsdb.com)
Music tab. Default works. Override at devportal.jamendo.com
Current value shown in the top bar. You can correct it or reset it here.
Users on older versions will see a popup prompting them to update. Set this to the current version number (e.g. 19.0).
Replace the default proxy with a custom server URL. Leave blank to use the default (PROXY_SERVER env var).
The link users click on /update to download the latest portal HTML. Leave blank to disable the button.
Create prizes users can redeem with Portal Bits. Stock of -1 = unlimited.
Students wager peer-to-peer — two people stake equal bits on opposite outcomes and the winner takes both stakes. Schedules sync automatically from TheSportsDB every 3 hours.
Off by default. When on, a check runs every 15 minutes and settles any game TheSportsDB reports as finished — paying out wagers without you clicking anything. Ambiguous results are always left for you to settle by hand. You can still settle any game manually below regardless of this setting.
3) is already active for schedules. Add a V2 key ($9/mo at thesportsdb.com) to unlock 2-min live scores and video highlights.Create topic rooms students can join from the Rooms tab. Each room is its own chat, separate from Global Chat.
Anyone signed in can still use the vendor register at /vendor — a code doesn't lock that down. All it does is give an account's charges a consistent display name (e.g. "Cafeteria" instead of whichever student is running the register that day) in the register header and transaction log.
Every charge — by email or by card, debit/credit/black — now requires the customer's own password, entered on the vendor's device, regardless of whether the account has a code.
Lets an external system — a real POS terminal, a vending machine, anything not running inside this portal — pay a student out or charge one, authenticated by a key instead of a login. The vendor needs an existing portal account first; the key just lets outside software act as that account for these two operations.
Charging a student still requires their password, sent with the API call — exactly like the in-app register. A leaked key alone can't drain anyone's balance. Paying a student out spends real bits from the vendor's own balance, not free minting.
Lets a separate application link to a student's account — with the student's own consent, not just the app's say-so — and check that student's bits balance afterward. It cannot spend, add, or remove bits; it can only look, and only for accounts that actually approved linking.
Register the application once below, then generate a key for it. Send students the link shown for each app — that's the page where they approve or decline linking; nothing links without them seeing and clicking that.
Every countdown here is what students actually see on the Countdown tab — set once, shown to everyone. You can set up more than one at a time (e.g. "Winter Break" and "School's Out" together); each gets its own card, in the order shown below.
Download a full database backup or restore from a previous one.
Moderators log in via Ctrl+M using their school email + account password. They can view open tabs and submit action requests, but cannot close tabs, change settings, or modify ranks.
Action requests submitted by moderators.
The portal tries proxies in order. The Default (env PROXY_SERVER) is always #1. Add fallback proxies below — lower order number = tried first. Set your Ultraviolet or other proxy URLs here.
Add custom HTML games. Paste the full HTML of the game. Max 5MB per game. These appear in the Games tab and on the login screen.
Runs Firefox in an on-demand session — a slot only exists while someone's actually queued or using it. Capacity and session length are set via MAX_SLOTS and SESSION_MINUTES environment variables on this portal.
Runs Spotify's own Linux client in an on-demand session — students log in once and stay logged in for next time. Capacity and session length are set via SPOTIFY_MAX_SLOTS and SPOTIFY_SESSION_MINUTES.
Runs the Parsec client in an on-demand session, so students can reach it from a restricted device — the actual experience depends on whatever machine they connect it to. Capacity and session length are set via PARSEC_MAX_SLOTS and PARSEC_SESSION_MINUTES.
Runs Opera GX in an on-demand session — a slot only exists while someone's actually queued or using it. Capacity and session length are set via OPERAGX_MAX_SLOTS and OPERAGX_SESSION_MINUTES.