HTTPS Bastion¶
The Reemo HTTPS Bastion is a locked-down browser, securely exposed through a Reemo session directly inside the user’s own browser. It gives controlled access to web applications without installing or exposing a browser on the workstation.
This guide covers deployment first (administrator side), then day-to-day usage (end-user side).
Template¶
This template can be imported from the Images page of the administration interface. See the Import and Export of Images section for the import and update procedure.
{
"name": "HTTPS Bastion",
"type": "ALU",
"comments": "",
"reference": "registry.reemo.io/reemosbhttps",
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width=\"512\" height=\"512\" role=\"img\" aria-label=\"HTTPS Bastion\"><rect width=\"512\" height=\"512\" rx=\"96\" fill=\"#7B88A3\"/><path d=\"M 184 192 V 146 a 72 72 0 0 1 144 0 V 192\" fill=\"none\" stroke=\"#FFFFFF\" stroke-width=\"34\" stroke-linecap=\"round\"/><rect x=\"126\" y=\"192\" width=\"260\" height=\"208\" rx=\"40\" fill=\"#FFFFFF\"/><g fill=\"none\" stroke=\"#56617A\" stroke-width=\"15\" stroke-linecap=\"round\"><circle cx=\"256\" cy=\"296\" r=\"54\"/><ellipse cx=\"256\" cy=\"296\" rx=\"22\" ry=\"54\"/><path d=\"M 202 296 H 310\"/></g></svg>",
"config": [
{"conditionOp":"EQUAL","conditionVal":"allowlist","conditionVar":"REEMO_FILTER_LOGIC","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Only these are reachable; everything else is blocked. Comma-separated. Accepts bare domains (reemo.io = that host only), wildcard subdomains (*.github.com), full URLs with a path prefix (https://site.com/app), or URL globs (*://*.cdn.net/*).","name":"Allowed Websites","placeholder":null,"type":"STRING","uiPriority":830,"value":"","variable":"REEMO_ALLOWLIST","optional":false},
{"conditionOp":"EQUAL","conditionVal":"blocklist","conditionVar":"REEMO_FILTER_LOGIC","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"These are blocked; everything else is allowed. Same formats as allowlist: bare domains, *.subdomain wildcards, full URLs with a path prefix, or URL globs.","name":"Blocked Websites","placeholder":null,"type":"STRING","uiPriority":820,"value":"","variable":"REEMO_BLOCKLIST","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Allowlist (deny by default)","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"allowlist","variable":"REEMO_FILTER_LOGIC","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"BLANK","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"What a new tab shows.","name":"New Tab Page","placeholder":null,"type":"SELECT","uiPriority":900,"value":"","variable":"REEMO_NEW_TAB","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Reemo","placeholder":null,"type":"SELECT_OPTION","uiPriority":50,"value":"#896FFB","variable":"REEMO_BACKGROUND_COLOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"5","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"5","variable":"REEMO_LIMIT_MONITOR","optional":false},
{"conditionOp":"EQUAL","conditionVal":"external","conditionVar":"REEMO_PROXY_MODE","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"All browser traffic is routed through this upstream proxy, as host:port (e.g. proxy.corp.local:3128).","name":"Upstream Proxy (host:port)","placeholder":null,"type":"STRING","uiPriority":810,"value":"","variable":"REEMO_EXTERNAL_PROXY","optional":false},
{"conditionOp":"EQUAL","conditionVal":"custom","conditionVar":"REEMO_NEW_TAB","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"URL opened on each new tab.","name":"New Tab URL","placeholder":null,"type":"STRING","uiPriority":890,"value":"","variable":"REEMO_NEW_TAB_URL","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"2","placeholder":null,"type":"SELECT_OPTION","uiPriority":40,"value":"2","variable":"REEMO_LIMIT_MONITOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"1","placeholder":null,"type":"SELECT_OPTION","uiPriority":50,"value":"1","variable":"REEMO_LIMIT_MONITOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Direct connection (no proxy)","placeholder":null,"type":"SELECT_OPTION","uiPriority":5,"value":"direct","variable":"REEMO_PROXY_MODE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Navy","placeholder":null,"type":"SELECT_OPTION","uiPriority":30,"value":"#0a3d62","variable":"REEMO_BACKGROUND_COLOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"External proxy (upstream)","placeholder":null,"type":"SELECT_OPTION","uiPriority":15,"value":"external","variable":"REEMO_PROXY_MODE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Dark","placeholder":null,"type":"SELECT_OPTION","uiPriority":5,"value":"#1e1e1e","variable":"REEMO_BACKGROUND_COLOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"URL filtering (allow / block websites)","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"filter","variable":"REEMO_PROXY_MODE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"direct","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"How the browser reaches the web. Direct: no proxy. URL filtering: route through a local proxy that allows or blocks websites. External proxy: route all traffic through an upstream proxy.","name":"Proxy Mode","placeholder":null,"type":"SELECT","uiPriority":850,"value":"","variable":"REEMO_PROXY_MODE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Custom URL","placeholder":null,"type":"SELECT_OPTION","uiPriority":20,"value":"custom","variable":"REEMO_NEW_TAB","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"4","placeholder":null,"type":"SELECT_OPTION","uiPriority":20,"value":"4","variable":"REEMO_LIMIT_MONITOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Blank page","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"BLANK","variable":"REEMO_NEW_TAB","optional":false},
{"conditionOp":"EQUAL","conditionVal":"url","conditionVar":"REEMO_HOME_MODE","defaultValue":"https://reemo.io","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Page loaded when the session starts.","name":"Start URL / Homepage","placeholder":null,"type":"STRING","uiPriority":1000,"value":"","variable":"REEMO_HOME","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Black","placeholder":null,"type":"SELECT_OPTION","uiPriority":20,"value":"#000000","variable":"REEMO_BACKGROUND_COLOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Blocklist (allow by default)","placeholder":null,"type":"SELECT_OPTION","uiPriority":5,"value":"blocklist","variable":"REEMO_FILTER_LOGIC","optional":false},
{"conditionOp":"EQUAL","conditionVal":"filter","conditionVar":"REEMO_PROXY_MODE","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Allowlist: block everything except the listed websites. Blocklist: allow everything except the listed websites.","name":"Filtering Logic","placeholder":null,"type":"SELECT","uiPriority":840,"value":"","variable":"REEMO_FILTER_LOGIC","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"Bookmarks","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Name of the bookmarks folder shown in the bar.","name":"Bookmarks Folder Name","placeholder":null,"type":"STRING","uiPriority":520,"value":"","variable":"REEMO_BOOKMARKS_NAME","optional":true},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"#896FFB","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":null,"name":"Background Color","placeholder":null,"type":"SELECT","uiPriority":490,"value":"","variable":"REEMO_BACKGROUND_COLOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"White","placeholder":null,"type":"SELECT_OPTION","uiPriority":30,"value":"#ffffff","variable":"REEMO_BACKGROUND_COLOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Bookmarks as Name|URL pairs, comma-separated (e.g. Reemo|https://reemo.io,Docs|https://docs.reemo.io).","name":"Bookmarks","placeholder":null,"type":"STRING","uiPriority":510,"value":"","variable":"REEMO_BOOKMARKS","optional":true},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"5","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":null,"name":"Monitor Limit","placeholder":null,"type":"SELECT","uiPriority":480,"value":"","variable":"REEMO_LIMIT_MONITOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"3","placeholder":null,"type":"SELECT_OPTION","uiPriority":30,"value":"3","variable":"REEMO_LIMIT_MONITOR","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"false","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Allows the browser to resolve and display URLs using the local file:// protocol.","name":"Local file navigation (file://)","placeholder":null,"type":"SELECT","uiPriority":805,"value":"","variable":"REEMO_ALLOW_FILE_PROTOCOL","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Enabled","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"true","variable":"REEMO_ALLOW_FILE_PROTOCOL","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Disabled","placeholder":null,"type":"SELECT_OPTION","uiPriority":5,"value":"false","variable":"REEMO_ALLOW_FILE_PROTOCOL","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"fr","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Keyboard layout for the session.","name":"Keyboard","placeholder":null,"type":"SELECT","uiPriority":470,"value":"","variable":"REEMO_KEYMAP","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"English","placeholder":null,"type":"SELECT_OPTION","uiPriority":30,"value":"us","variable":"REEMO_KEYMAP","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"French","placeholder":null,"type":"SELECT_OPTION","uiPriority":20,"value":"fr","variable":"REEMO_KEYMAP","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Sweden","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"sv","variable":"REEMO_KEYMAP","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"Europe/Paris","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Time zone for the session.","name":"Timezone","placeholder":null,"type":"SELECT","uiPriority":460,"value":"","variable":"REEMO_TIMEZONE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Europe/Paris","placeholder":null,"type":"SELECT_OPTION","uiPriority":30,"value":"Europe/Paris","variable":"REEMO_TIMEZONE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Europe/London","placeholder":null,"type":"SELECT_OPTION","uiPriority":20,"value":"Europe/London","variable":"REEMO_TIMEZONE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Europe/Stockholm","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"Europe/Stockholm","variable":"REEMO_TIMEZONE","optional":false},
{"conditionOp":"EQUAL","conditionVal":"html","conditionVar":"REEMO_HOME_MODE","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"Paste raw HTML to use as the session start page. The page is served locally and hardened: scripts and remote resources are disabled, so images must be inlined as data: URIs. Keep it under ~128 KB.","name":"Custom Homepage (HTML)","placeholder":null,"type":"TEXT","uiPriority":995,"value":"","variable":"REEMO_CUSTOM_HTML","optional":true},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Same as start page","placeholder":null,"type":"SELECT_OPTION","uiPriority":15,"value":"CUSTOM_HTML","variable":"REEMO_NEW_TAB","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":"url","intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":true,"hint":"What the session opens on. URL: a normal web address. Custom HTML page: paste your own HTML below.","name":"Start Page","placeholder":null,"type":"SELECT","uiPriority":1010,"value":"","variable":"REEMO_HOME_MODE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"URL","placeholder":null,"type":"SELECT_OPTION","uiPriority":20,"value":"url","variable":"REEMO_HOME_MODE","optional":false},
{"conditionOp":null,"conditionVal":"","conditionVar":"","defaultValue":null,"intMax":null,"intMin":null,"intStep":null,"volumeName":null,"volumeTarget":null,"volumeStorageClass":null,"volumeAccessMode":null,"volumeMode":null,"volumeRequestSize":null,"volumeRequestSizeOverhead":null,"editable":false,"hint":null,"name":"Custom HTML page","placeholder":null,"type":"SELECT_OPTION","uiPriority":10,"value":"html","variable":"REEMO_HOME_MODE","optional":false}
],
"links": [],
"usePushNotifications": false,
"assignableToProvider": true,
"os": null,
"vmStartMode": null,
"vmCreationMode": null,
"vmCreationDate": null,
"vmPersistentDisk": null,
"official": false
}
Configuration and deployment¶
Image information¶
Image:
registry.reemo.io/reemosbhttps:latest
Internal browser: ungoogled-Chromium
Choosing the start page¶
The Start Page selector determines what the session displays on opening. Only one of the two following fields is visible at a time, depending on the option chosen.
Option |
Associated field and behavior |
|---|---|
URL (default) |
Start URL / Homepage: a regular web address loaded when the session starts. Default value: https://reemo.io. |
Custom HTML page |
Custom Homepage (HTML): your own HTML code, pasted into the form, becomes the start page. See the next section. |
Custom HTML homepage¶
Display your own page when the browser opens: a portal of internal links, a welcome message, your team’s guidelines. You paste HTML, and it becomes the session’s start page.
How to enable it
Start Page → Custom HTML page
Custom Homepage (HTML) → paste your code
Optional — New Tab Page → Same as start page, so new tabs also open this page. The address bar then stays empty.
What works
Text, headings, tables, and lists · CSS formatting (<style> and style=”…” attributes) · links to your sites, subject to the session’s URL filtering like anywhere else · forms · images, provided they are embedded directly in the code as a data: URI.
What deliberately does not work
No JavaScript: <script> tags, onclick attributes, and javascript: links have no effect.
No resource loaded from the Internet: an image, font, or stylesheet referenced by URL will not display.
<iframe> elements do not display.
The page is displayed in the deliberately locked-down browser. Rather than “cleaning up” your code, the browser is instructed to execute nothing and contact no one. Your HTML is never modified: it is displayed as-is, inside a frame that prevents it from acting.
Tip
Good to know
Maximum size of about 128 KB, embedded images included.
For a logo, convert it to a data: URI and use <img src=”data:image/png;base64,…”>.
For a regular web address, leave Start Page on URL.
Controlling new tabs¶
The New Tab Page selector determines what a new tab displays.
Option |
Behavior |
|---|---|
Blank page (default) |
Empty tab. |
Custom URL |
Shows the New Tab URL field: the address opened on every new tab. |
Same as start page |
Opens the same page as the session start: the custom HTML page if you set one, otherwise the Start URL. |
Note
With Same as start page and a custom HTML page, the session’s address bar stays empty at startup, on the Home button, and on new tabs. This is the setting to prefer for an internal portal.
Publishing bookmarks¶
Field |
Description |
|---|---|
Bookmarks |
Comma-separated list of Name|URL pairs, e.g. Reemo|https://reemo.io,Docs|https://docs.reemo.io. |
Bookmarks Folder Name |
Name of the folder shown in the bookmarks bar. Default: Bookmarks. |
The folder is pushed by policy: the end user can neither edit nor delete it.
Configuring the session¶
Field |
Description |
|---|---|
Monitor Limit |
Maximum number of screens usable in the session, from 1 to 5. Default: 5. |
Background Color |
Desktop background color: Reemo (default), Navy, Dark, Black, White. |
Keyboard |
Session keyboard layout: French (default), English, Sweden. |
Timezone |
Session time zone: Europe/Paris (default), Europe/London, Europe/Stockholm. |
Usage guide¶
Opening the session¶
When the Reemo session opens, the browser starts directly on the page defined by Start Page. No installation or configuration is required from the user.
Managing windows¶
A taskbar is present at the bottom of each session screen and lists open windows. The Reemo logo button, on the left of the bar, opens a menu containing the New window entry: it opens an additional browser window on the session’s start page, at any time.
Entering credentials from the Reemo portal¶
When the session is linked to a secret from the Reemo credentials portal, the user has no password to know:
Open the target site’s login page.
A Reemo logo badge appears on the username field.
Clicking the badge (or the empty field) opens the credential picker.
Choose the entry: both the username and the password are filled in.
Note
The secret is never written to the container’s disk, and never shown in clear text to the end user. The component that holds it runs under a dedicated system account, separate from the browser’s.
Transferring files¶
When file transfer is enabled for the session, the image exposes a Transfer directory, accessible from the Reemo browser’s Files menu. This directory is also the browser’s download folder: a file downloaded in the session is dropped there directly, ready to be retrieved on the workstation.
Warning
The Transfer space is ephemeral. Remember to retrieve your files to your local workstation before closing the session: data does not survive the container stopping.
Security Constraints¶
The browser is permanently locked down. This is not a deployment option: the following restrictions apply to every session.
No access to browser configuration: settings pages, the extension manager, and internal chrome:// and about:// pages are inaccessible.
No developer tools: the console and inspector are disabled.
Locked extensions: the two Reemo extensions (credential injection, security and logging) can be neither disabled nor removed by the end user, and no other extension can be installed.
Disabled features: account sync, the built-in password manager, browsing history, printing, private browsing, search suggestions, and telemetry.
Full navigation logging: every request issued by the session (method and URL) is recorded in the container’s logs, with the Reemo user’s identity on every line. A session’s activity can therefore be reconstructed after the fact.
Changelog¶
v1.0.0 (2026-09-01)¶
First public release of the HTTPS Bastion Reemo image: a locked-down ungoogled-Chromium session, delivered in the browser through Reemo, that gives controlled access to web applications without exposing a browser installed on the user’s workstation.
Added¶
Web access through a locked-down browser. The session opens an ungoogled-Chromium window the end user cannot reconfigure or repurpose: the settings pages, the extension manager, the internal browser pages and the developer tools are all unreachable, and local file navigation is refused unless a deployment enables it explicitly. Sync, the built-in password manager, browsing history, printing and telemetry are disabled, and the two Reemo extensions are locked in place — the user can neither remove them nor install any other.
URL filtering, allowlist or blocklist. The session can act as a filtered gateway: either everything is blocked except the websites you list, or everything is allowed except those you list. Filtering applies to any navigation, including a link followed from inside a page, and a refused address shows a block page instead of loading. Alternatively, all browser traffic can be routed through an existing corporate proxy.
Custom start page written in HTML. Instead of a URL, the session can open on a page you supply as raw HTML — an internal link portal, a welcome message, your team’s instructions. It is served locally and displayed exactly as written, inside a frame that prevents it from running scripts or reaching the internet. New tabs can open on that same page, on a blank page, or on a URL of your choice.
Credential injection from the Reemo credential portal. A secret held in the portal is resolved when the session starts and offered on the target site’s login form: a Reemo badge appears on the username field, and one click fills username and password. The secret is never written to disk and never shown to the end user, and the component holding it runs under its own system account, isolated from the browser.
Full navigation audit. Every request the session issues is recorded in the container logs with per-line attribution to the Reemo user, so what was accessed during a session can be reconstructed afterwards. All subsystems of the image write to a single log format aligned with the rest of the Reemo platform, which makes the container output directly usable for operations and log collection.
Bidirectional file transfer. Files move between the user’s workstation and the session through a dedicated
Transferfolder, which is also the browser’s download directory: a downloaded file lands there ready to be retrieved. Transfer can be disabled entirely for a deployment, in which case the browser’s file dialogs are closed off as well.Multi-monitor desktop with a per-screen taskbar. The session can use several screens, added or removed on the fly, and resizes with the browser window. A taskbar on each screen manages the open windows, and its Reemo logo button opens a locked menu that can open another browser window at any time. The number of usable screens and the desktop background color are configurable.
Managed bookmarks, keyboard layout and time zone. A read-only bookmarks folder can be pushed into the bar, and the session’s keyboard layout and time zone are chosen at deployment.
Versions¶
Images published on registry.reemo.io/reemosbhttps.
Each build exposes these pullable tags:
Latest (
:latest) – the latest published releaseRelease (
:vX.Y.Z) – always tracks the latest build of this versionBuild (
:vX.Y.Z-N) – a specific, frozen weekly buildImage (
:<id>) – immutable reference to this exact build
Example: docker pull registry.reemo.io/reemosbhttps:vX.Y.Z-N
v1.0.0-1 (2026-09-01)