mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
* docs: update preferred external port design in TODO * docs: add user-controlled public/private and port forward mapping to design * docs: overhaul interfaces page design with view/manage split and per-address controls * docs: move address enable/disable to overflow menu, add SSL indicator, defer UI placement decisions * chore: remove tor from startos core Tor is being moved from a built-in OS feature to a service. This removes the Arti-based Tor client, onion address management, hidden service creation, and all related code from the core backend, frontend, and SDK. - Delete core/src/net/tor/ module (~2060 lines) - Remove OnionAddress, TorSecretKey, TorController from all consumers - Remove HostnameInfo::Onion and HostAddress::Onion variants - Remove onion CRUD RPC endpoints and tor subcommand - Remove tor key handling from account and backup/restore - Remove ~12 tor-related Cargo dependencies (arti-client, torut, etc.) - Remove tor UI components, API methods, mock data, and routes - Remove OnionHostname and tor patterns/regexes from SDK - Add v0_4_0_alpha_20 database migration to strip onion data - Bump version to 0.4.0-alpha.20 * chore: flatten HostnameInfo from enum to struct HostnameInfo only had one variant (Ip) after removing Tor. Flatten it into a plain struct with fields gateway, public, hostname. Remove all kind === 'ip' type guards and narrowing across SDK, frontend, and container runtime. Update DB migration to strip the kind field. * chore: format RPCSpec.md markdown table * docs: update TODO.md with DerivedAddressInfo design, remove completed tor task * feat: implement preferred port allocation and per-address enable/disable - Add AvailablePorts::try_alloc() with SSL tracking (BTreeMap<u16, bool>) - Add DerivedAddressInfo on BindInfo with private_disabled/public_enabled/possible sets - Add Bindings wrapper with Map impl for patchdb indexed access - Flatten HostAddress from single-variant enum to struct - Replace set-gateway-enabled RPC with set-address-enabled - Remove hostname_info from Host; computed addresses now in BindInfo.addresses.possible - Compute possible addresses inline in NetServiceData::update() - Update DB migration, SDK types, frontend, and container-runtime * feat: replace InterfaceFilter with ForwardRequirements, add WildcardListener, complete alpha.20 bump - Replace DynInterfaceFilter with ForwardRequirements for per-IP forward precision with source-subnet iptables filtering for private forwards - Add WildcardListener (binds [::]:port) to replace the per-gateway NetworkInterfaceListener/SelfContainedNetworkInterfaceListener/ UpgradableListener infrastructure - Update forward-port script with src_subnet and excluded_src env vars - Remove unused filter types and listener infrastructure from gateway.rs - Add availablePorts migration (IdPool -> BTreeMap<u16, bool>) to alpha.20 - Complete version bump to 0.4.0-alpha.20 in SDK and web * outbound gateway support (#3120) * Multiple (#3111) * fix alerts i18n, fix status display, better, remove usb media, hide shutdown for install complete * trigger chnage detection for localize pipe and round out implementing localize pipe for consistency even though not needed * Fix PackageInfoShort to handle LocaleString on releaseNotes (#3112) * Fix PackageInfoShort to handle LocaleString on releaseNotes * fix: filter by target_version in get_matching_models and pass otherVersions from install * chore: add exver documentation for ai agents * frontend plus some be types --------- Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> * feat: replace SourceFilter with IpNet, add policy routing, remove MASQUERADE * build ts types and fix i18n * fix license display in marketplace * wip refactor * chore: update ts bindings for preferred port design * feat: refactor NetService to watch DB and reconcile network state - NetService sync task now uses PatchDB DbWatch instead of being called directly after DB mutations - Read gateways from DB instead of network interface context when updating host addresses - gateway sync updates all host addresses in the DB - Add Watch<u64> channel for callers to wait on sync completion - Fix ts-rs codegen bug with #[ts(skip)] on flattened Plugin field - Update SDK getServiceInterface.ts for new HostnameInfo shape - Remove unnecessary HTTPS redirect in static_server.rs - Fix tunnel/api.rs to filter for WAN IPv4 address * re-arrange (#3123) * new service interfacee page * feat: add mdns hostname metadata variant and fix vhost routing - Add HostnameMetadata::Mdns variant to distinguish mDNS from private domains - Mark mDNS addresses as private (public: false) since mDNS is local-only - Fall back to null SNI entry when hostname not found in vhost mapping - Simplify public detection in ProxyTarget filter - Pass hostname to update_addresses for mDNS domain name generation * looking good * feat: add port_forwards field to Host for tracking gateway forwarding rules * update bindings for API types, add ARCHITECTURE (#3124) * update binding for API types, add ARCHITECTURE * translations * fix: add CONNMARK restore-mark to mangle OUTPUT chain The CONNMARK --restore-mark rule was only in PREROUTING, which handles forwarded packets. Locally-bound listeners (e.g. vhost) generate replies through the OUTPUT chain, where the fwmark was never restored. This caused response packets to route via the default table instead of back through the originating interface. * chore: reserialize db on equal version, update bindings and docs - Run de/ser roundtrip in pre_init even when db version matches, ensuring all #[serde(default)] fields are populated before any typed access - Add patchdb.md documentation for TypedDbWatch patterns - Update TS bindings for CheckPortParams, CheckPortRes, ifconfigUrl - Update CLAUDE.md docs with patchdb and component-level references * fix: include public gateways for IP-based addresses in vhost targets The server hostname vhost construction only collected private IPs, always setting public to empty. Public IP addresses (Ipv4/Ipv6 metadata with public=true) were never added to the vhost target's public gateway set, causing the vhost filter to reject public traffic for IP-based addresses. * fix: add TLS handshake timeout and fix accept loop deadlock Two issues in TlsListener::poll_accept: 1. No timeout on TLS handshakes: LazyConfigAcceptor waits indefinitely for ClientHello. Attackers that complete TCP handshake but never send TLS data create zombie futures in `in_progress` that never complete. Fix: wrap the entire handshake in tokio::time::timeout(15s). 2. Missing waker on new-connection pending path: when a TCP connection is accepted and the TLS handshake is pending, poll_accept returned Pending without calling wake_by_ref(). Since the TcpListener returned Ready (not Pending), no waker was registered for it. With edge- triggered epoll and no other wakeup source, the task sleeps forever and remaining connections in the kernel accept queue are never drained. Fix: add cx.waker().wake_by_ref() so the task immediately re-polls and continues draining the accept queue. * fix: switch BackgroundJobRunner from Vec to FuturesUnordered BackgroundJobRunner stored active jobs in a Vec<BoxFuture> and polled ALL of them on every wakeup — O(n) per poll. Since this runs in the same tokio::select! as the WebServer accept loop, polling overhead from active connections directly delayed acceptance of new connections. FuturesUnordered only polls woken futures — O(woken) instead of O(n). * chore: update bindings and use typed params for outbound gateway API * feat: per-service and default outbound gateway routing Add set-outbound-gateway RPC for packages and set-default-outbound RPC for the server, with policy routing enforcement via ip rules. Fix connmark restore to skip packets with existing fwmarks, add bridge subnet routes to per-interface tables, and fix squashfs path in update-image-local.sh. * refactor: manifest wraps PackageMetadata, move dependency_metadata to PackageVersionInfo Manifest now embeds PackageMetadata via #[serde(flatten)] instead of duplicating ~14 fields. icon and dependency_metadata moved from PackageMetadata to PackageVersionInfo since they are registry-enrichment data loaded from the S9PK archive. merge_with now returns errors on metadata/icon/dependency_metadata mismatches instead of silently ignoring them. * fix: replace .status() with .invoke() for iptables/ip commands Using .status() leaks stderr directly to system logs, causing noisy iptables error messages. Switch all networking CLI invocations to use .invoke() which captures stderr properly. For check-then-act patterns (iptables -C), use .invoke().await.is_err() instead of .status().await.map_or(false, |s| s.success()). * feat: add check-dns gateway endpoint and fix per-interface routing tables Add a `check-dns` RPC endpoint that verifies whether a gateway's DNS is properly configured for private domain resolution. Uses a three-tier check: direct match (DNS == server IP), TXT challenge probe (DNS on LAN), or failure (DNS off-subnet). Fix per-interface routing tables to clone all non-default routes from the main table instead of only the interface's own subnets. This preserves LAN reachability when the priority-75 catch-all overrides default routing. Filter out status-only flags (linkdown, dead) that are invalid for `ip route add`. * refactor: rename manifest metadata fields and improve error display Rename wrapperRepo→packageRepo, marketingSite→marketingUrl, docsUrl→docsUrls (array), remove supportSite. Add display_src/display_dbg helpers to Error. Fix DepInfo description type to LocaleString. Update web UI, SDK bindings, tests, and fixtures to match. Clean up cli_attach error handling and remove dead commented code. * chore: bump sdk version to 0.4.0-beta.49 * chore: add createTask decoupling TODO * chore: add TODO to clear service error state on install/update * round out dns check, dns server check, port forward check, and gateway port forwards * chore: add TODOs for URL plugins, NAT hairpinning, and start-tunnel OTA updates * version instead of os query param * interface row clickable again, bu now with a chevron! * feat: implement URL plugins with table/row actions and prefill support - Add URL plugin effects (register, export_url, clear_urls) in core - Add PluginHostnameInfo, HostnameMetadata::Plugin, and plugin registration types - Implement plugin URL table in web UI with tableAction button and rowAction overflow menus - Thread urlPluginMetadata (packageId, hostId, interfaceId, internalPort) as prefill to actions - Add prefill support to PackageActionData so metadata passes through form dialogs - Add i18n translations for plugin error messages - Clean up plugin URLs on package uninstall * feat: split row_actions into remove_action and overflow_actions for URL plugins * touch up URL plugins table * show table even when no addresses * feat: NAT hairpinning, DNS static servers, clear service error on install - Add POSTROUTING MASQUERADE rules for container and host hairpin NAT - Allow bridge subnet containers to reach private forwards via LAN IPs - Pass bridge_subnet env var from forward.rs to forward-port script - Use DB-configured static DNS servers in resolver with DB watcher - Fall back to resolv.conf servers when no static servers configured - Clear service error state when install/update completes successfully - Remove completed TODO items * feat: builder-style InputSpec API, prefill plumbing, and port forward fix - Add addKey() and add() builder methods to InputSpec with InputSpecTools - Move OuterType to last generic param on Value, List, and all dynamic methods - Plumb prefill through getActionInput end-to-end (core → container-runtime → SDK) - Filter port_forwards to enabled addresses only - Bump SDK to 0.4.0-beta.50 * fix: propagate host locale into LXC containers and write locale.conf * chore: remove completed URL plugins TODO * feat: OTA updates for start-tunnel via apt repository (untested) - Add apt repo publish script (build/apt/publish-deb.sh) for S3-hosted repo - Add apt source config and GPG key placeholder (apt/) - Add tunnel.update.check and tunnel.update.apply RPC endpoints - Wire up update API in tunnel frontend (api service + mock) - Uses systemd-run --scope to survive service restart during update * fix: publish script dpkg-name, s3cfg fallback, and --reinstall for apply * chore: replace OTA updates TODO with UI TODO for MattDHill * feat: add getOutboundGateway effect and simplify VersionGraph init/uninit Add getOutboundGateway effect across core, container-runtime, and SDK to let services query their effective outbound gateway with callback support. Remove preInstall/uninstall hooks from VersionGraph as they are no longer needed. * frontend start-tunnel updates * chore: remove completed TODO * feat: tor hidden service key migration * chore: migrate from ts-matches to zod across all TypeScript packages * feat(core): allow setting server hostname * send prefill for tasks and hide operations to hidden fields * fix(core): preserve plugin URLs across binding updates BindInfo::update was replacing addresses with a new DerivedAddressInfo that cleared the available set, wiping plugin-exported URLs whenever bind() was called. Also simplify update_addresses plugin preservation to use retain in place rather than collecting into a separate set. * minor cleanup from patch-db audit * clean up prefill flow * frontend support for setting and changing hostname * feat(core): refactor hostname to ServerHostnameInfo with name/hostname pair - Rename Hostname to ServerHostnameInfo, add name + hostname fields - Add set_hostname_rpc for changing hostname at runtime - Migrate alpha_20: generate serverInfo.name from hostname, delete ui.name - Extract gateway.rs helpers to fix rustfmt nesting depth issue - Add i18n key for hostname validation error - Update SDK bindings * add comments to everything potentially consumer facing (#3127) * add comments to everything potentially consumer facing * rework smtp --------- Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> * implement server name * setup changes * clean up copy around addresses table * feat: add zod-deep-partial, partialValidator on InputSpec, and z.deepPartial re-export * fix: header color in zoom (#3128) * fix: merge version ranges when adding existing package signer (#3125) * fix: merge version ranges when adding existing package signer Previously, add_package_signer unconditionally inserted the new version range, overwriting any existing authorization for that signer. Now it OR-merges the new range with the existing one, so running signer add multiple times accumulates permissions rather than replacing them. * add --merge flag to registry package signer add Default behavior remains overwrite. When --merge is passed, the new version range is OR-merged with the existing one, allowing admins to accumulate permissions incrementally. * add missing attribute to TS type * make merge optional * upsert instead of insert * VersionRange::None on upsert * fix: header color in zoom --------- Co-authored-by: Dominion5254 <musashidisciple@proton.me> * update snake and add about this server to system general * chore: bump sdk to beta.53, wrap z.deepPartial with passthrough * reset instead of reset defaults * action failure show dialog * chore: bump sdk to beta.54, add device-info RPC, improve SDK abort handling and InputSpec filtering - Bump SDK version to 0.4.0-beta.54 - Add `server.device-info` RPC endpoint and `s9pk select` CLI command - Extract `HardwareRequirements::is_compatible()` method, reuse in registry filtering - Add `AbortedError` class with `muteUnhandled` flag, replace generic abort errors - Handle unhandled promise rejections in container-runtime with mute support - Improve `InputSpec.filter()` with `keepByDefault` param and boolean filter values - Accept readonly tuples in `CommandType` and `splitCommand` - Remove `sync_host` calls from host API handlers (binding/address changes) - Filter mDNS hostnames by secure gateway availability - Derive mDNS enabled state from LAN IPs in web UI - Add "Open UI" action to address table, disable mDNS toggle - Hide debug details in service error component - Update rpc-toolkit docs for no-params handlers * fix: add --no-nvram to efi grub-install to preserve built-in boot order * update snake * diable actions when in error state * chore: split out nvidia variant * misc bugfixes * create manage-release script (untested) * fix: preserve z namespace types for sdk consumers * sdk version bump * new checkPort types * multiple bugs and better port forward ux * fix link * chore: todos and formatting * fix build --------- Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com> Co-authored-by: Matt Hill <mattnine@protonmail.com> Co-authored-by: Alex Inkin <alexander@inkin.ru> Co-authored-by: Dominion5254 <musashidisciple@proton.me>
708 lines
28 KiB
TypeScript
708 lines
28 KiB
TypeScript
// prettier-ignore
|
|
export const ENGLISH: Record<string, number> = {
|
|
'Change': 1, // verb
|
|
'Update': 2, // verb
|
|
'System': 4, // as in, system preferences
|
|
'General': 5, // as in, general settings
|
|
'SMTP': 6,
|
|
'Create Backup': 7, // create a backup
|
|
'Restore Backup': 8, // restore from backup
|
|
'Go to login': 9,
|
|
'Test': 10, // verb
|
|
'Skip': 11, // as in, skip this step
|
|
'Active Sessions': 12,
|
|
'Change Password': 13,
|
|
'General Settings': 14,
|
|
'Browser tab title': 16,
|
|
'Language': 17,
|
|
'Disk Repair': 18,
|
|
'Attempt automatic repair': 19,
|
|
'Repair': 20,
|
|
'Root Certificate Authority': 21,
|
|
'Download your Root CA': 22,
|
|
'Download': 23,
|
|
'Restart Tor': 24,
|
|
'Restart the Tor daemon on your server': 25,
|
|
'Software Update': 26,
|
|
'Restart to apply': 27,
|
|
'Check for updates': 28,
|
|
'This value will be displayed as the title of your browser tab.': 29,
|
|
'Device Name': 30,
|
|
'StartOS': 31,
|
|
'Save': 32,
|
|
'Saving': 33,
|
|
'Warning': 34,
|
|
'Confirm': 35,
|
|
'Cancel': 36,
|
|
'This action should only be executed if directed by a Start9 support specialist. We recommend backing up your device before preforming this action. If anything happens to the device during the reboot, such as losing power or unplugging the drive, the filesystem will be in an unrecoverable state. Please proceed with caution.': 37,
|
|
'Delete': 38,
|
|
'Tor restart in progress': 39,
|
|
'Restarting Tor': 40,
|
|
'Checking for updates': 41,
|
|
'Beginning restart': 42,
|
|
'You are on the latest version of StartOS.': 43,
|
|
'Up to date!': 44,
|
|
'Release notes': 45,
|
|
'Begin Update': 46,
|
|
'Beginning update': 47,
|
|
'You are currently connected over Tor. If you restart the Tor daemon, you will lose connectivity until it comes back online.': 48,
|
|
'Optionally wipe state to forcibly acquire new guard nodes. It is recommended to try without wiping state first.': 50,
|
|
'Wipe state': 51,
|
|
'Saving high score': 52,
|
|
'Score': 53,
|
|
'High score': 54,
|
|
'Save and quit': 55,
|
|
'Bookmark this page': 56,
|
|
'Beginning shutdown': 57,
|
|
'Add': 58,
|
|
'Ok': 59,
|
|
'fr_FR': 60,
|
|
'This value cannot be changed once set': 61,
|
|
'Continue': 62,
|
|
'Click or drop file here': 63,
|
|
'Drop file here': 64,
|
|
'Disabled': 65,
|
|
'Version': 66,
|
|
'Copy': 67, // as in, copy to clipboard
|
|
'About this server': 68,
|
|
'System Settings': 69,
|
|
'Restart': 70,
|
|
'Shutdown': 71,
|
|
'Logout': 72,
|
|
'User manual': 73,
|
|
'Contact support': 74,
|
|
'Donate to Start9': 75,
|
|
'Are you sure you want to restart your server? It can take several minutes to come back online.': 76,
|
|
'Are you sure you want to power down your server? This can take several minutes, and your server will not come back online automatically. To power on again, You will need to physically unplug your server and plug it back in.': 77,
|
|
'Services': 78, // as in, server-side software applications
|
|
'Marketplace': 79,
|
|
'Sideload': 80, // installing a service manually
|
|
'Updates': 81,
|
|
'Metrics': 82, // system info such as CPU, RAM, and storage usage
|
|
'Logs': 83, // as in, application logs
|
|
'Notifications': 84,
|
|
'Hard uninstall': 85, // as in, hard reset or hard reboot, except for uninstalling
|
|
'Show QR': 86,
|
|
'Copy URL': 87,
|
|
'Actions': 88, // as in, actions available to the user
|
|
'not recommended': 89,
|
|
'Root CA Trusted!': 90,
|
|
'Installed services': 91, // as in, software services installed on this computer
|
|
'Diagnostics for the Tor daemon on this server': 92,
|
|
'Copy fingerprint': 93, // as in the fingerprint of a root certificate authority
|
|
'Waiting': 94,
|
|
'Waiting on': 95, // as in "awaiting"
|
|
'Add public domain': 96,
|
|
'Removing': 97,
|
|
'Unsaved changes': 100,
|
|
'You have unsaved changes. Are you sure you want to leave?': 101,
|
|
'Leave': 102,
|
|
'Are you sure?': 103,
|
|
'New gateway': 104, // as in, a network gateway
|
|
'Tor Domains': 107,
|
|
'public': 108,
|
|
'private': 109,
|
|
'No Tor domains': 111,
|
|
'New Tor domain': 112,
|
|
'Private Key (optional)': 113,
|
|
'Optionally provide a base64-encoded ed25519 private key for generating the Tor V3 (.onion) domain. If not provided, a random key will be generated.': 114,
|
|
'Processing 10,000 logs': 115,
|
|
'Loading older logs': 116,
|
|
'Waiting for network connectivity': 117,
|
|
'Reconnecting': 118,
|
|
'Loading logs': 119,
|
|
'Scroll to bottom': 120,
|
|
'Reconnected': 121,
|
|
'Disconnected': 122,
|
|
'More': 123,
|
|
'The following modifications were made': 124,
|
|
'added': 125,
|
|
'removed': 126,
|
|
'changed from': 127,
|
|
'to': 128, // as in, from [blank] to [blank]
|
|
'entry': 129, // as in, "a list entry"
|
|
'list': 130,
|
|
'new entry': 131,
|
|
'new list': 132,
|
|
'Submit': 133,
|
|
'Close': 134,
|
|
'OS Logs': 135,
|
|
'Kernel Logs': 136,
|
|
'Tor Logs': 137,
|
|
'Raw, unfiltered operating system logs': 138,
|
|
'Diagnostics for drivers and other kernel processes': 139,
|
|
'Downgrade': 141,
|
|
'Reinstall': 142,
|
|
'Installed': 143,
|
|
'Switch': 144,
|
|
'Install': 145,
|
|
'Beginning install': 146,
|
|
'Services from this registry are packaged and maintained by the Start9 team. If you experience an issue or have questions related to a service from this registry, one of our dedicated support staff will be happy to assist you.': 148,
|
|
'Services from this registry are packaged and maintained by members of the Start9 community. Install at your own risk. If you experience an issue or have a question related to a service in this marketplace, please reach out to the package developer for assistance.': 149,
|
|
'Services from this registry are undergoing beta testing and may contain bugs. Install at your own risk.': 150,
|
|
'Services from this registry are undergoing alpha testing. They are expected to contain bugs and could damage your system. Install at your own risk.': 151,
|
|
'This is a Custom Registry. Start9 cannot verify the integrity or functionality of services from this registry, and they could damage your system. Install at your own risk.': 152,
|
|
'Default Registries': 153,
|
|
'Custom Registries': 154,
|
|
'Add custom registry': 155,
|
|
'Save for later': 156,
|
|
'Save and connect': 157,
|
|
'Deleting': 158,
|
|
'Changing registry': 159,
|
|
'Loading': 160,
|
|
'Registry already added': 161,
|
|
'Validating registry': 162,
|
|
'Are you sure you want to delete this registry?': 163,
|
|
'Add Custom Registry': 164,
|
|
'A fully-qualified URL of the custom registry': 165,
|
|
'Must be a valid URL': 166,
|
|
'installed from': 167,
|
|
'sideloaded': 168, // as in, the application was installed by sideloading
|
|
'This service was originally': 169,
|
|
'but you are currently connected to': 170,
|
|
'To install from': 171,
|
|
'anyway, click "Continue".': 172,
|
|
'As a result of this update, the following services will no longer work properly and may crash': 173,
|
|
'Alert': 174,
|
|
'Percentage used': 175,
|
|
'User space': 176,
|
|
'Kernel space': 177,
|
|
'Idle': 178, // a CPU metric
|
|
'I/O wait': 179,
|
|
'Total': 181,
|
|
'Used': 182,
|
|
'Available': 183,
|
|
'zram used': 184,
|
|
'zram total': 185,
|
|
'zram available': 186,
|
|
'System Time': 187,
|
|
'Uptime': 188,
|
|
'Temperature': 189,
|
|
'Memory': 190, // as in, computer memory
|
|
'Storage': 191,
|
|
'Capacity': 192, // as in, disk capacity
|
|
'Clock sync failure': 193,
|
|
'the docs': 194, // as in, the documentation
|
|
'Days': 195,
|
|
'Hours': 196,
|
|
'Minutes': 197,
|
|
'Seconds': 198,
|
|
'View full': 199,
|
|
'View report': 200,
|
|
'Batch action': 201,
|
|
'Mark seen': 202,
|
|
'Mark unseen': 203,
|
|
'Date': 204,
|
|
'Title': 205, // as in, the title of a book
|
|
'Service': 206, // as in, server-side software application
|
|
'Message': 207,
|
|
'No notifications': 208,
|
|
'Required': 209,
|
|
'Optional': 210,
|
|
'No reason provided': 211,
|
|
'Tasks': 212,
|
|
'Type': 213,
|
|
'Description': 214,
|
|
'All tasks complete': 215,
|
|
'Start': 216,
|
|
'Stop': 217,
|
|
'Dependencies': 218,
|
|
'Satisfied': 219,
|
|
'No dependencies': 220,
|
|
'Not installed': 221,
|
|
'Incorrect version': 222,
|
|
'Not running': 223,
|
|
'Action required': 224,
|
|
'Required health check not passing': 225,
|
|
'Dependency has a dependency issue': 226,
|
|
'Unknown error': 227,
|
|
'Error': 228,
|
|
'"Rebuild container" is a harmless action that and only takes a few seconds to complete. It will likely resolve this issue.': 229,
|
|
'"Hard uninstall" is a dangerous action that will remove the service from StartOS and wipe all its data.': 230,
|
|
'Rebuild container': 231,
|
|
'Soft uninstall': 232, // as in, uninstall the service but preserve its data
|
|
'View full message': 233,
|
|
'Service error': 234,
|
|
'Awaiting result': 235,
|
|
'Starting': 236,
|
|
'Success': 237,
|
|
'Health Checks': 238,
|
|
'No health checks': 239,
|
|
'Name': 240,
|
|
'Status': 241,
|
|
'Open': 242, // verb
|
|
'Service Interfaces': 243, // as in, a UI or API for an application
|
|
'Hosting': 244,
|
|
'Installing': 245,
|
|
'See below': 246,
|
|
'No services installed': 248,
|
|
'Running': 249,
|
|
'Stopped': 250,
|
|
'Task Required': 251,
|
|
'Updating': 252,
|
|
'Stopping': 253,
|
|
'Trust your Root CA': 254,
|
|
'Backing Up': 255,
|
|
'Restarting': 256,
|
|
'Back': 257,
|
|
'Restoring': 258,
|
|
'Unknown': 259,
|
|
'Reveal/Hide': 260,
|
|
'Reveal': 261,
|
|
'Scan this QR': 262,
|
|
'Reset': 263,
|
|
'As a result of this change, the following services will no longer work properly and may crash': 264,
|
|
'Service Launch Error': 265,
|
|
'Issue': 266,
|
|
'Failure': 267,
|
|
'Healthy': 268,
|
|
'finalizing': 269,
|
|
'unknown %': 270,
|
|
'Not provided': 271,
|
|
'Links': 272,
|
|
'Git hash': 273,
|
|
'License': 274,
|
|
'Installed from': 275,
|
|
'Marketing': 278,
|
|
'Support': 279,
|
|
'Donations': 280,
|
|
'Standard Actions': 281,
|
|
'Rebuild Service': 282, // as in, rebuild a software container
|
|
'Rebuilds the service container. Only necessary if there is a bug in StartOS': 283,
|
|
'Uninstall': 284,
|
|
'Uninstalls this service from StartOS and deletes all data permanently.': 285,
|
|
'Dashboard': 286,
|
|
'dashboard': 287,
|
|
'actions': 288,
|
|
'logs': 290, // as in, "application logs"
|
|
'about': 291, // as in, "about this server"
|
|
'Starting upload': 292,
|
|
'Try again': 293,
|
|
'Upload .s9pk package file': 294,
|
|
'Warning: package upload will be slow over Tor.': 295,
|
|
'Select': 296,
|
|
'Version 1 s9pk detected. This package format is deprecated. You can sideload a V1 s9pk via start-cli if necessary.': 297,
|
|
'Invalid package file': 298,
|
|
'View instructions': 300,
|
|
'Contact': 303, // as in, "contact us"
|
|
'Edit': 304,
|
|
'Add Certificate Authority': 305,
|
|
'Edit contact info': 306,
|
|
'Contact Emails': 307,
|
|
'Needed to obtain a certificate from a Certificate Authority': 308,
|
|
'Toggle all': 309,
|
|
'Done': 310,
|
|
'Master password needed': 311,
|
|
'Enter your master password to encrypt this backup.': 312,
|
|
'Master Password': 313,
|
|
'Enter master password': 314,
|
|
'Original password needed': 315,
|
|
'This backup was created with a different password. Enter the original password that was used to encrypt this backup.': 316,
|
|
'Original Password': 317,
|
|
'Enter original password': 318,
|
|
'Beginning backup': 319,
|
|
'Back up StartOS and service data by connecting to a device on your local network or a physical drive connected to your server.': 320,
|
|
'Restore StartOS and service data from a device on your local network or a physical drive connected to your server that contains an existing backup.': 321,
|
|
'Last Backup': 322, // as in, the last time the server was backed up
|
|
'A folder on another computer that is connected to the same network as your Start9 server.': 323,
|
|
'A physical drive that is plugged directly into your Start9 Server.': 324,
|
|
'Select Services to Back Up': 325,
|
|
'Select server backup': 326,
|
|
'Network Folders': 327,
|
|
'Open New': 328,
|
|
'Hostname': 329,
|
|
'Path': 330, // as in, a URL path
|
|
'URL': 331,
|
|
'Model': 334, // as in, a product model
|
|
'User Agent': 335,
|
|
'Platform': 336, // as in, OS platform, such as iOS, Android, Linux, etc
|
|
'Last Active': 337,
|
|
'Created At': 338,
|
|
'Algorithm': 339, // as in, the encryption algorithm
|
|
'Fingerprint': 340, // as in, a fingerprint hash
|
|
'Package Hash': 341,
|
|
'Published': 342,
|
|
'New Network Folder': 343,
|
|
'Update Network Folder': 344,
|
|
'Testing connectivity to shared folder': 345,
|
|
'Ensure (1) target computer is connected to the same LAN as your Start9 Server, (2) target folder is being shared, and (3) hostname, path, and credentials are accurate.': 346,
|
|
'Unable to connect': 347,
|
|
'Network Folder does not contain a valid backup': 348,
|
|
'Connect': 349,
|
|
'Username': 350,
|
|
'Password': 351,
|
|
'The hostname of your target device on the Local Area Network.': 352,
|
|
'On Windows, this is the fully qualified path to the shared folder, (e.g. /Desktop/my-folder). On Linux and Mac, this is the literal name of the shared folder (e.g. my-shared-folder).': 353,
|
|
'On Linux, this is the samba username you created when sharing the folder. On Mac and Windows, this is the username of the user who is sharing the folder.': 354,
|
|
'On Linux, this is the samba password you created when sharing the folder. On Mac and Windows, this is the password of the user who is sharing the folder.': 355,
|
|
'Physical Drives': 356,
|
|
'No drives detected': 357,
|
|
'Refresh': 358,
|
|
'Drive partition does not contain a valid backup': 359,
|
|
'Backup Progress': 360,
|
|
'Complete': 361,
|
|
'backing up': 362,
|
|
'waiting': 363,
|
|
'Backup made': 364,
|
|
'Restore selected': 365,
|
|
'Initializing': 366,
|
|
'Unavailable. Backup was made on a newer version of StartOS.': 367,
|
|
'Unavailable. Service is already installed.': 368,
|
|
'Ready to restore': 369,
|
|
'Local Hostname': 370,
|
|
'Created': 371,
|
|
'Password required': 372,
|
|
'Enter the master password that was used to encrypt this backup. On the next screen, you will select the individual services you want to restore.': 373,
|
|
'Decrypting drive': 374,
|
|
'Select services to restore': 375,
|
|
'Available for backup': 376,
|
|
'StartOS backups detected': 377,
|
|
'No StartOS backups detected': 378,
|
|
'StartOS Version': 379,
|
|
'SMTP Credentials': 381,
|
|
'Send test email': 382,
|
|
'Send': 383,
|
|
'Sending email': 384,
|
|
'A test email has been sent to': 385,
|
|
'Check your spam folder and mark as not spam.': 386,
|
|
'The web user interface for your StartOS server, accessible from any browser.': 387,
|
|
'You will still need your current password to decrypt existing backups!': 389,
|
|
'New passwords do not match': 390,
|
|
'New password must be 12 characters or greater': 391,
|
|
'New password must be less than 65 characters': 392,
|
|
'Current password is invalid': 393,
|
|
'Password changed': 394,
|
|
'Current Password': 395,
|
|
'New Password': 396,
|
|
'Retype New Password': 397,
|
|
'Current session': 399,
|
|
'Other sessions': 400,
|
|
'Terminate selected': 401,
|
|
'Terminating sessions': 402,
|
|
'No sessions': 403,
|
|
'Password needed': 404,
|
|
'Connected': 405,
|
|
'Forget': 406, // as in, delete or remove
|
|
'WiFi Credentials': 407,
|
|
'Connect to hidden network': 408,
|
|
'Connect to': 409, // followed by a network name, e.g. "Connect to MyWiFi?"
|
|
'Known Networks': 410,
|
|
'Other Networks': 411,
|
|
'WiFi is disabled': 412,
|
|
'No wireless interface detected': 413,
|
|
'Enabling': 414,
|
|
'Disabling': 415,
|
|
'Connecting. This could take a while': 416,
|
|
'Retry': 417,
|
|
'Show more': 418,
|
|
'View details': 419,
|
|
'View listing': 420,
|
|
'Services that depend on': 421,
|
|
'will no longer work properly and may crash.': 422,
|
|
'Request failed': 423,
|
|
'All services are up to date!': 424,
|
|
'Run': 425, // as in, run a piece of software
|
|
'Action can only be executed when service is': 426,
|
|
'Forbidden': 427,
|
|
'may temporarily experiences issues': 428,
|
|
'has unmet dependencies. It will not work as expected.': 429,
|
|
'Rebuilding container': 430,
|
|
'Beginning uninstall': 431,
|
|
'will permanently delete its data.': 432,
|
|
'Uninstalling': 433,
|
|
'Trying to reach server': 434,
|
|
'Connection restored': 435,
|
|
'State unknown': 436,
|
|
'Server connected': 437,
|
|
'No Internet': 438,
|
|
'Connecting': 439,
|
|
'Shutting down': 440,
|
|
'All versions': 441,
|
|
'New notifications': 442,
|
|
'View': 443,
|
|
'Reloading PWA': 444,
|
|
'Completed': 445,
|
|
'System data': 446,
|
|
'Not attempted': 447,
|
|
'Failed': 448,
|
|
'Succeeded': 449,
|
|
'Restart your server for these updates to take effect. It can take several minutes to come back online.': 450,
|
|
'StartOS download complete': 451,
|
|
'Unknown storage drive detected': 452,
|
|
'To use a different storage drive, replace the current one and click RESTART SERVER below. To use the current storage drive, click USE CURRENT DRIVE below, then follow instructions. No data will be erased during this process.': 453,
|
|
'Storage drive not found': 454,
|
|
'Insert your StartOS storage drive and click RESTART SERVER below.': 455,
|
|
'Storage drive corrupted. This could be the result of data corruption or physical damage.': 456,
|
|
'It may or may not be possible to re-use this drive by reformatting and recovering from backup. To enter recovery mode, click ENTER RECOVERY MODE below, then follow instructions. No data will be erased during this step.': 457,
|
|
'Filesystem error': 458,
|
|
'Repairing the disk could help resolve this issue. Please DO NOT unplug the drive or server during this time or the situation will become worse.': 459,
|
|
'Disk management error': 460,
|
|
'Please contact support': 461,
|
|
'Diagnostic Mode': 462,
|
|
'launch error': 463,
|
|
'View logs': 464,
|
|
'Possible solutions': 465,
|
|
'Setup current drive': 466,
|
|
'Enter recovery mode': 467,
|
|
'Server is restarting': 468,
|
|
'Wait for the server to restart, then refresh this page.': 469,
|
|
'Restart server': 470,
|
|
'Repair drive': 471,
|
|
'Setting up your server': 472,
|
|
'Progress': 473,
|
|
'Login to StartOS': 474,
|
|
'Login': 475,
|
|
'Logging in': 476,
|
|
'Password must be less than 65 characters': 477,
|
|
'Invalid password': 478,
|
|
'Download and trust your Root Certificate Authority to establish a secure (HTTPS) connection. You will need to repeat this on every device you use to connect to your server.': 479,
|
|
'Save this page so you can access it later. You can also find this address in the file downloaded at the end of initial setup.': 480,
|
|
'You have successfully trusted your Root CA and may now log in securely.': 481,
|
|
'Your server uses its Root CA to generate SSL/TLS certificates for itself and installed services. These certificates are then used to encrypt network traffic with your client devices.': 482,
|
|
'Follow instructions for your OS. By trusting your Root CA, your device can verify the authenticity of encrypted communications with your server.': 483,
|
|
'Refresh the page. If refreshing the page does not work, you may need to quit and re-open your browser, then revisit this page.': 484,
|
|
'StartOS UI': 485,
|
|
'WiFi': 486,
|
|
'Documentation': 487, // as in, a website to view documentation
|
|
'es_ES': 488,
|
|
'pl_PL': 489,
|
|
'de_DE': 490,
|
|
'en_US': 491,
|
|
'Start Menu': 492,
|
|
'Install Progress': 493,
|
|
'Downloading': 494,
|
|
'Validating': 495,
|
|
'in progress': 496,
|
|
'complete': 497,
|
|
'Booting StartOS': 498,
|
|
'To get started, visit the Marketplace and download your first service': 499,
|
|
'View Marketplace': 500,
|
|
'Welcome to': 501,
|
|
'sovereign computing': 502,
|
|
'Customize the name appearing in your browser tab': 503,
|
|
'Manage': 504, // as in, administer
|
|
'"Soft uninstall" will remove the service from StartOS but preserve its data.': 506,
|
|
'No saved providers': 507,
|
|
'Kiosk Mode': 508, // an OS mode that permits attaching a monitor to the computer
|
|
'Enabled': 509,
|
|
'Disable Kiosk Mode unless you need to attach a monitor': 510,
|
|
'Enable Kiosk Mode if you need to attach a monitor': 511,
|
|
'Kiosk Mode is unavailable on this device': 512,
|
|
'Enable': 513,
|
|
'Disable': 514,
|
|
'This change will take effect after the next boot': 515,
|
|
'Recommended': 516, // as in, we recommend this
|
|
'Are you sure you want to dismiss this task?': 517,
|
|
'Dismiss': 518, // as in, dismiss or delete a task
|
|
'Must be a valid IPv4 or Ipv6 address with optional port': 519,
|
|
'Update available': 520,
|
|
'To resolve the issue, refer to': 521,
|
|
'SDK version': 522,
|
|
'Backup Report': 523,
|
|
'Delete selected': 524,
|
|
'No SSH keys': 525,
|
|
'Add SSH key': 526,
|
|
'SSH Keys': 527,
|
|
'Source Code': 528,
|
|
'Upstream service': 529, // as in, the URL of the source code for the original software
|
|
'StartOS package': 530, // as in, the URL of the source code for the StartOS package
|
|
'Error initializing server': 531,
|
|
'Finished': 532, // an in, complete
|
|
'Gateways': 533, // as in, a device or software that connects two different networks
|
|
'Add StartTunnel Gateway': 535, // as in, add a new StartTunnel network gateway to StartOS
|
|
'Rename': 536,
|
|
'Access': 537, // as in, public or private access, almost "permission"
|
|
'Public Domains': 538, // as in, internet domains
|
|
'Certificate Authorities': 539,
|
|
'Domain': 540, // as in, an internat domain name
|
|
'Gateway': 541, // as in, a device or software that connects two different networks
|
|
'Certificate Authority': 543,
|
|
'Edit public domain': 544,
|
|
'No public domains': 545,
|
|
'Provider': 546,
|
|
'View DNS': 547,
|
|
'New public domain': 548,
|
|
'Addresses': 550,
|
|
'No addresses': 553,
|
|
'Change CA': 554,
|
|
'Address details': 555,
|
|
'Private Domains': 556,
|
|
'No private domains': 557,
|
|
'New private domain': 558,
|
|
'DNS Servers': 559,
|
|
'Enter a fully qualified domain name. Since the domain is for private use, it can be any domain you want, even one you do not control.': 560,
|
|
'Enter a fully qualified domain name. For example, if you control domain.com, you could enter domain.com or subdomain.domain.com or another.subdomain.domain.com.': 561,
|
|
'DNS Records': 562,
|
|
'Create one of the DNS records below.': 563,
|
|
'No DNS record detected for': 564, // this is a partial sentence. A domain name will be added after "for" to complete the sentence.
|
|
'Invalid DNS record': 565,
|
|
'resolves to': 566, // as in "domain.com 'resolves to' [IP address]"
|
|
'DNS record detected!': 567,
|
|
'Select a gateway to use for this domain.': 568,
|
|
'Select a Certificate Authority to issue SSL/TLS certificates for this domain': 569,
|
|
'Other': 570, // as in, a list option to indicate none of the options listed
|
|
'A name to easily identify the gateway': 571,
|
|
"Not good for public access, since the certificate is signed by your Server's Root CA": 572,
|
|
'File': 574, // as in, a computer file
|
|
'StartTunnel Config File': 575,
|
|
'Copy/Paste': 576,
|
|
'File Contents': 577,
|
|
'Public Key': 578, // as in, a cryptographic public key
|
|
'must be a valid SSH public key': 579,
|
|
'Refresh Needed': 580,
|
|
'Your user interface is cached and out of date. Attempt to reload the PWA using the button below. If you continue to see this message, uninstall and reinstall the PWA.': 581,
|
|
'Your user interface is cached and out of date. Hard refresh the page to get the latest UI.': 582,
|
|
'Host': 606, // as in, a network host
|
|
'Value': 607, // as in, the value in a column of a table
|
|
'Dynamic DNS': 610,
|
|
'No service interfaces': 611, // as in, there are no available interfaces (API, UI, etc) for this software application
|
|
'Reason': 612, // as in, an explanation for something
|
|
'Cannot disable private gateways for StartOS UI': 613,
|
|
'Root CA': 614, // as in, the unique, fixed-length digital identifier generated from a certificate's data using a cryptographic hash function
|
|
'Use the DNS servers provided by your router': 615,
|
|
'Use DNS servers you specify manually': 616,
|
|
'Static': 617, // as in, unchanging
|
|
'Servers': 618, // as in, computer servers
|
|
'Warning. StartOS is currently using the following gateway for DNS': 619,
|
|
'If you intend to use this gateway for private domain resolution, set alternative static DNS servers using the form above.': 620,
|
|
'Package a service': 621, // as in, package a software application for an operating system
|
|
'Released': 622, // as in, the date something became available
|
|
'Alternative Implementations': 623,
|
|
'Versions': 624,
|
|
'Select another version': 625,
|
|
'Upload': 626, // as in, upload a file
|
|
'Open UI': 627, // as in, upload a file
|
|
'Copied to clipboard': 628,
|
|
// Setup wizard keys
|
|
'Installing StartOS': 629,
|
|
'Select your language': 630,
|
|
'Select Keyboard Layout': 631,
|
|
'Keyboard': 632,
|
|
'Select Setup Flow': 633,
|
|
'Start Fresh': 634,
|
|
'Set up a brand new server': 635,
|
|
'Restore from Backup': 636,
|
|
'Restore StartOS data from an encrypted backup': 637,
|
|
'Transfer data from an existing StartOS data drive': 638,
|
|
'Select Drives': 639, // as in storage devices
|
|
'No drives found. Please connect a drive and click Refresh.': 640,
|
|
'OS Drive': 641,
|
|
'Data Drive': 642,
|
|
'StartOS Data Detected': 643,
|
|
'Data on the OS drive may be overwritten.': 644,
|
|
'your StartOS data on the data drive will be preserved.': 645,
|
|
'Data on this drive will be overwritten.': 646,
|
|
'Data on both drives will be overwritten.': 647,
|
|
'Select Backup': 648,
|
|
'Select the StartOS backup you want to restore': 649,
|
|
'Open Network Backup': 650, // as in, a backup stored on a networked device
|
|
'Physical Backups': 651, // as in, a backup stored on a physical drive
|
|
'No physical backups': 652,
|
|
'Connect Network Folder': 653,
|
|
'Select Network Backup': 654,
|
|
'Unlock Backup': 655,
|
|
'Transfer Data': 656,
|
|
'Select the drive containing your existing StartOS data': 657,
|
|
'Select Drive': 658,
|
|
'No StartOS data drives found': 659,
|
|
'Set Up Your Server': 660,
|
|
'Set New Password (Optional)': 661,
|
|
'Enter Password': 664,
|
|
'Confirm Password': 665,
|
|
'Finish': 666,
|
|
'Starting setup': 667,
|
|
'Wait 1-2 minutes and refresh the page': 670,
|
|
'Setup Complete!': 672,
|
|
'http://start.local was for setup only. It will no longer work.': 675,
|
|
'Download Address Info': 676,
|
|
"Contains your server's permanent local address and Root CA": 677,
|
|
'Remove Installation Media': 678,
|
|
'Remove USB stick or other installation media from your server': 679,
|
|
'Restart Server': 680,
|
|
'Waiting for server to come back online': 681,
|
|
'Server is back online': 682,
|
|
'Restart your server to complete setup': 683,
|
|
'Open Local Address': 684,
|
|
'Continue to Login': 685,
|
|
'Proceed to the StartOS login screen': 686,
|
|
'Server did not come back online. Please check your server and try accessing it manually.': 687,
|
|
'This field is required': 691,
|
|
'Connection Failed': 692,
|
|
'Unable to connect to network folder. Ensure (1) target computer is connected to LAN, (2) target folder is being shared, and (3) hostname, path, and credentials are accurate.': 693,
|
|
'This drive contains existing StartOS data.': 694,
|
|
'to keep your data.': 695,
|
|
'to discard': 696,
|
|
'Enter the password that was used to encrypt this backup.': 697,
|
|
'Multiple backups found. Select which one to restore.': 698,
|
|
'Backups': 699,
|
|
'The drive where the StartOS operating system will be installed.': 700,
|
|
'The drive where your StartOS data (services, settings, etc.) will be stored. This can be the same as the OS drive or a separate drive.': 701,
|
|
'After transferring data from this drive, do not attempt to boot into it again as a Start9 Server. This may result in services malfunctioning, data corruption, or loss of funds.': 702,
|
|
'Must be 12 characters or greater': 703,
|
|
'Must be 64 character or less': 704,
|
|
'Passwords do not match': 705,
|
|
'Preserve': 706,
|
|
'Overwrite': 707,
|
|
'Unlock': 708,
|
|
'Drive': 709, // the noun, a storage device
|
|
'Transfer': 710, // the verb
|
|
'The list is empty': 711,
|
|
'Restart now': 712,
|
|
'Later': 713, // as in, (do it) later
|
|
'Installation Complete!': 714,
|
|
'StartOS has been installed successfully.': 715,
|
|
'Continue to Setup': 716,
|
|
'Set Outbound Gateway': 717,
|
|
'Current': 718,
|
|
'System default': 719,
|
|
'Outbound Gateway': 720,
|
|
'Select the gateway for outbound traffic': 721,
|
|
'The type of gateway': 722,
|
|
'Outbound Only': 723,
|
|
'Set as default outbound': 724,
|
|
'Route all outbound traffic through this gateway': 725,
|
|
'WireGuard Config File': 726,
|
|
'Inbound/Outbound': 727,
|
|
'StartTunnel (Inbound/Outbound)': 728,
|
|
'Ethernet': 729,
|
|
'Add Domain': 730,
|
|
'Public Domain': 731,
|
|
'Private Domain': 732,
|
|
'Hide': 733,
|
|
'default outbound': 734,
|
|
'Certificate': 735,
|
|
'Self signed': 736,
|
|
'Port Forwarding': 737,
|
|
'DNS': 739,
|
|
'Instructions': 740,
|
|
'In your domain registrar for': 741, // partial sentence, followed by a domain name
|
|
'create this DNS record': 742,
|
|
'In your gateway': 743, // partial sentence, followed by a gateway name
|
|
'create this port forwarding rule': 744,
|
|
'External Port': 745,
|
|
'Internal Port': 747,
|
|
'DNS Server Config': 749,
|
|
'must be configured to use': 750,
|
|
'the LAN IP address of this server': 751,
|
|
'as its DNS server': 752,
|
|
'DNS Server': 753,
|
|
'View port forwards': 754,
|
|
'Interface(s)': 755,
|
|
'No port forwarding rules': 756,
|
|
'Port forwarding rules required on gateway': 757,
|
|
'You are currently connected via your .local address. Changing the hostname will require you to switch to the new .local address.': 763,
|
|
'Hostname Changed': 764,
|
|
'Open new address': 765,
|
|
'Your server is now reachable at': 766,
|
|
'Server Name': 767,
|
|
'Address Requirements': 768,
|
|
'Version, Root CA, and more': 769,
|
|
'Details': 770,
|
|
'Game Over': 771,
|
|
'Press any key or tap to start': 772,
|
|
'Press any key or tap to play again': 773,
|
|
'Port status cannot be determined while service is not running': 774,
|
|
'This address will not work from your local network due to a router hairpinning limitation': 775,
|
|
'Action not found': 776,
|
|
}
|