Exosphere: the User-Friendliest Interface for Non-proprietary Cloud Infrastructure
- Empowers researchers and other non-IT professionals to deploy code and run services on OpenStack-based cloud systems, without advanced virtualization or networking knowledge
- Fills the gap between OpenStack interfaces built for system administrators (like Horizon), and intuitive-but-proprietary services like DigitalOcean and Amazon Lightsail
- Enables cloud operators to deliver a friendly, powerful interface to their community with customized branding, nomenclature, and single sign-on integration
Watch a video presentation and demo:
Try Exosphere
- Visit try.exosphere.app if you have access to an existing OpenStack cloud with internet-facing APIs
- Use jetstream2.exosphere.app if you have an allocation on Jetstream2
- Run Exosphere locally if you don't want to use our hosted site
Overview and Features
Wait, what is OpenStack? OpenStack is the operating system and APIs that power public research clouds like Jetstream2 and Chameleon, private clouds at organizations like Wikimedia and CERN, and public commercial clouds like OVH, Fuga, Vexxhost, and Leafcloud. Any organization can run OpenStack on its own hardware to provide a cloud service for its own community, or for the world.
What can I do with Exosphere?
- Create instances to run your code, and volumes to manage your data
- Works great for containers, intensive compute jobs, disposable experiments, and persistent web services
- Get one-click, browser-based shell and graphical desktop access to cloud instances (via Apache Guacamole)
- Pretty graphs show an instance's resource usage at a glance
- If you're a cloud operator, deliver a customized interface with white-labeling, localization, and single sign-on
- 100% self-hostable, 99% standalone client application
- Two small proxy servers secure web browser connections to OpenStack APIs, and interactive services running on cloud instances
- On the roadmap:
- First-class support for container and data science workbench resources
- Cluster orchestration
- Community-curated deployment automations for scientific workflows and custom services
- Free, open source, and open development process -- come hack with us!
- See Exosphere's values and goals
Documentation Index
For Users and Anyone Else
- Running Exosphere yourself (instead of using one of the hosted sites)
- Exosphere Compatibility (with clouds and instance operating systems)
- Values and Goals of the Exosphere Project
- Nomenclature Reference
- Installing Exosphere Progressive Web Application
- Cockpit Deprecation and Manual Installation
- Graphical Acceleration
For Cloud Operators
- Configuration Options
- Instance Setup Code
- Solving the CORS Problem (Cloud CORS Proxy)
- User Application Proxy (UAP)
- Configuring Instance Types
- Message for desktop environment users
- Federated Login Support
For Exosphere Contributors
- Quick Start for New Contributors
- Contributing to Exosphere
- Contributor Skills
- Tour of Exosphere Codebase
- UI, Layout, Style & Design System
- Contribution Review Policy
- Merge Request Quality Checklist
- Architecture Decision Records
- Exosphere Tests
- Browser Integration Tests
- Performance Tests
- MkDocs Site
- Code of Conduct
For Exosphere Project Maintainers
Legal Docs
- Exosphere Project License
- Acceptable Use Policy for Exosphere Hosted Sites
- Privacy Policy for Exosphere Hosted Sites
- Vulnerability Disclosure Policy
Collaborate With Us
Talk to us in real-time on Matrix / Element - #exosphere:matrix.org. You can also browse an archive of the chat history.
There's also a developer-focused Matrix / Element - #exosphere-dev:matrix.org chat with a browsable archive.
We use GitLab to track issues and contributions. To request a new feature or report a bug, create a new issue on our GitLab project.
We have a weekly community video call Wednesdays at 15:30 UTC (note the new day and time). Join by clicking on the Jitsi widget in our Element chat. (agenda, and previous meeting notes)
Contributors
:memo: :abcd: (ordered by stated family name)
:key: a legend for contribution emojis appears in ./contributing.md
- Rodolfo Aramayo (@raramayo1): π‘π
- Jenn Armstrong (@jlrobiso): π‘π
- aszen (@aszenz): ππ»β
- Ryan Bartelme (@rbartelme): π
- austin baum (@abaumer): ππ»
- Devin Bayly (@debyly): π
- Brian Beck (@beckbw): π
- Blair Bethwaite (@blair-bethwaite): π
- Alex Bigelow (@alex-r-bigelow): ππ»
- Patrick Bills (@billspat): π
- Stephen Bird (@stebird): π‘ππ»
- Darren Boss (@netscruff): π
- GitLab Support Bot (@support-bot): π‘π
- emre brookes (@ehb54): π‘π
- James Carlson (@jxxcarlson): π‘ππ»β
- carrieganote (@carrieganote): π‘π
- cartoloupe (@cartoloupe): π‘ππ»
- Tom Crowe (@thcrowe): π‘π
- Coury Ditch (@cmditch): π
- Andrey Fedorov (@andreyfedorov): π
- Justin Fernandez (@justinfernz): π
- Jean-Christophe Fillion-Robin (@jcfr): π
- Jeremy Fischer (@jlf599): π‘πβ
- John Fonner (@johnfonner): π
- FΓ©lix-Antoine Fortin (@CmdNtrf): π
- Brian Ginsburg (@bgins): ππ»
- Ariella Gladstein (@agladstein): π‘π
- Andrew Gould (@garyguitar): π
- Zach Graber (@zacharygraber): π‘ππ»
- Mike Griffith (@mgriffith): π
- Francois Halbach (@fwhalbach): π
- David Hancock (@dyhancoc): π
- Danny Havert (@djhavert): π‘π
- Mike Helmuth (@kilgoretrout1001): ππ»
- Caleb Hughes (@hughescd): π‘π
- Blake J (@bjoyce3): π‘π
- JiazhengHuang (@JiazhengHuang): π‘π
- JonathanHWood (@JonathanHWood): π‘π
- jrcolby (@jrcolby): π‘π
- Romina Karim (@rokarim): π‘ππ»β
- Ketchup (@pascal.lazaridis): π‘π
- Marnee Dearman (KG7SIO) (@MarneeDear): π‘π
- Jesse L (@jyssy): π
- Nathan Lavender (@nblavend): π
- David LeBauer (@dlebauer): π‘ππ»
- Steven Lee (@shl1cornell): π‘π
- Andrew J Lenards (@lenards): π‘ππ»β
- Lane Robert Lewis (@lanerobertlewis): ππ»
- Paul Lewis (@paul0lewis): π‘π
- Burkhard Linke (@blinke76): π‘π
- Mike Lowe (@j.michael.lowe): π‘π
- John Lowe (@jomlowe): π‘π
- Rafael Madrid (@rmadrid24): π
- Abdul Mahdi (@b-m-0): π‘ππ»
- Tom Marcais (@tmarcais): π
- Suresh Marru (@smarru): π
- Chris Martin (@cmart): π‘ππ»β
- Chris Martin (@cmart-testing): π»
- Kyle Mohr (@kylefmohr): π»
- muratmaga (@muratmaga): π‘π
- Alastair Neil (@ajneil): π‘π
- Connor Osborn (@cdosborn): π»
- Sebastian P. (@proksch): π‘π
- Alex Papaioannou (@apapaioannou92): π‘π
- Julian Parsert (@julianp): π
- Steve Pieper (@pieper): π‘π
- Robert Ping (@robping): π‘π
- J Pistorius (@jpistorius): π»
- Julian Pistorius (@julianpistorius): π‘ππ»β
- SlicerMorph Project (@SlicerMorph): π‘ππ»
- Ben Reynwar (@benreynwar): ππ»
- Kristina Riemer (@kriemer): ππ»
- heath ritchie (@heathritchie): ππ»
- John-Paul Robinson (@jprorama): π
- Hari Roshan (@hariroshan): ππ»
- rspfau (@rspfau): π‘π
- Mats Rynge (@rynge): π‘π
- Wasswa Samuel (@latimerscope): ππ»
- David Schanzenbach (@davidls1): π
- Alec Scott (@alecbcs): ππ»
- Lena Duplechin Seymour (@LenaEDS): π‘π
- Jaladh Singhal (@jaladh-singhal): π‘ππ»β
- Nicholas Skaggs (@nskaggs): π
- Jared M. Smith (@absynce): π
- Dennis Snell (@dmsnell): π‘ππ»β
- Matt Standish (@matt1232939): π
- Sanjana Sudarshan (@ssudarsh): π‘π
- Tyson L. Swetnam (@tyson-swetnam): π‘ππ«π
- Frank Tackitt (@kageurufu): π‘ππ»β
- Kyle Tee (@LordParsley): π‘ππ»β
- Ghost User (@ghost1): ππ»
- vsoch (@vsoch): ππ»
- Mariah Wall (@mgwall17): π
- Le Mai Weakley (@lemaiw): π
- Ben Weber (@aussieben): ππ»
- Aaron Wells (@wellsaar): π‘π
- Michael White (@mpmwhite): π‘ππ»β
- Sarah Williams (@saewill): π»
- Hai Wu (@haiwu.us): π‘π
- Derek Young (@youngdjn): π
NOTE: See a contribution missing or want to acknowledge one? Please submit an issue to let us know. More information on acknowledging contributions here.
Exosphere's Impact
- Jetstream2, a science and engineering research cloud, offers Exosphere as its primary user interface. Jetstream2 is available to any US-based researcher.
- Exosphere has a $298k award from the US National Science Foundation's Pathways to Enable Open-Source Ecosystems. Read about it in this news release.
This material is based upon work supported by the National Science Foundation under Grant No. 2229642. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

