-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Docs]:Enhanced Installation & Getting Started Docs #5904
base: main
Are you sure you want to change the base?
[Docs]:Enhanced Installation & Getting Started Docs #5904
Conversation
Updating Documentation Branch with `main` latest
Thanks so much for putting this together! There's definitely some great additional info on here. Going to bring this up with folks and see what they say. |
Hey @mamoodi thanks for the update and context. I agree things are subjective which is why I wanted early feedback before committing too many changes :-) I'd just like to add a few talking points for your discussion with the team. I've run support and sales engineering for a lot of vendors and spent a lot of time working on documentation and knowledge base design and I think the current focus on "simple" misses some important issues. As with your comments these are opinionated and subjective but I think they're important to the discussion. My changes might not be right but I definitely think that some kind of changes are needed.
|
Great points! Thanks for writing all that out! My understanding was that the installation steps should have you in a working state for Ubuntu, MacOS, Windows with WSL. Unfortunately I can't confirm that myself other than on MacOS and it may not be 100% working on Ubuntu or Windows. Lots of good points here so I'll defer this to @rbren and the rest of the maintainers on how they want this documentation to look like. |
Hi @autonomousit , thanks so much for doing this! I think there's some good stuff in here, like documenting the settings. On the other hand, I think it'd be good for us to recommend only a single installation pathway at first (only Docker) and then we could cover the building from source one later. One high-level suggestion -- there's a lot of stuff going on in this PR. I wonder if you could break it down a little bit so we can review and discuss each change separately? |
Agreed with Graham's comments :) We should also minimize the number of places we put this And it looks like some troubleshooting info leaked into installation.mdx--we should just link to troubleshooting |
Hey @neubig and @rbren , thanks for taking the time to review this and provide feedback. Sorry for the delay, have been on holiday and also now back at work so my bandwidth is less than over the end of year holidays. My key takeways and to-dos from this are:
I haven't deployed anything since 16.1 so I will make some time to start fresh with the latest builds and then circle back with a small snippet focused on getting the very first deployment up and running. |
@neubig and @rbren - so I'm trying to get 0.21 running via the What I wanted to ask is you feelings on converting this to a docker |
To close down the OpenHands app simply type `Ctrl+C` in the terminal window or close the terminal window. | ||
|
||
**TODO** - this is a bit nasty, is there a cleaner way to close down the app? Does a hard stop risk corrupting things liek session state? | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, there's a risk that it does not save some of the state. The previous events are there, but whether you can always restore them neatly is not obvious. This might be worth its own separate issue, so we can test the current behavior in all cases here, and take it from there.
```bash | ||
mkdir ~/openhands | ||
mkdir ~/openhands/.openhands-state | ||
cd ~/openhands |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Saving sessions in .openhands-state
is a relatively new behavior introduced last month -ish, about the time you first tried openhands
and I seem to recall you ran into some bug with it. I think that was a special circumstance though, and it shouldn't normally happen.
I think, please correct me if wrong, that doing this is unnecessary now?
* **Docker version 26.0.0+ or Docker Desktop 4.31.0+**. You can check your docker version by running `docker --version` in a terminal. See the [Docker documentation for installing Docker Engine](https://docs.docker.com/engine/install/) if needed. | ||
* Supported Operation Systems | ||
* **Debian/Ubuntu based Linux** - these instructions are written and tested in Debian/Ubuntu Linux systems and should work as expected. | ||
* **Mac OS and non-Debian Linux** - these instructions should work as expected but aren't explicitly tested on these OSes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for clarity: many if not all maintainers use MacOS, so usage on MacOS is probably implicitly tested 😅
I think this is also a bit confusing: this should be about the OS of the user, the machine. But the docker images, both for the app
docker (that they run with docker run
), and for the runtime
(sandbox) docker (which runs the agent during task execution), are by default Debian/Ubuntu based.
There are two ways you can deploy the OpenHands app: | ||
|
||
* **Using the official Docker image (recommended)** - this method is the primary method for using OpenHands. It is the simplest and doesn't require any development experience. | ||
* **Building the OpenHands app from source (for developers only)** - this method is designed for developers working on the OpenHands application. It requires experience building applications from source and working with dependencies. If you only plan to use OpenHands you shouldn't use this method. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While this is generally quite fair, I should mention here that I'm not fully sure of the implication that it's useless unless you plan to work on OpenHands.
IMHO there is at least one reason why it can be useful regardless: OpenHands is more easily configurable if you run without the app
docker, because the user can tweak a configuration file and go ahead, as opposed to attempting to edit a single command (as you mentioned yourself, that's not always friendly). There are also a few advanced config.toml
features which are not available in env
, thus not on the app
docker.
Nothing here requires to develop OpenHands, just to use it more easily or powerfully (once the user went through git clone
make build
step).
The easiest way to run OpenHands is in Docker. | ||
There are two ways you can deploy the OpenHands app: | ||
|
||
* **Using the official Docker image (recommended)** - this method is the primary method for using OpenHands. It is the simplest and doesn't require any development experience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* **Using the official Docker image (recommended)** - this method is the primary method for using OpenHands. It is the simplest and doesn't require any development experience. | |
* **Using the official Docker image (recommended)** - this method is the primary method for using OpenHands. It is the simplest, you just run a command. |
I agree more focus on compose makes sense, and we already have a basic I like that the Ease of maintenance is a concern when adding alternative approaches, but this one is fine IMO. It's also well known and used out there. However, I can see some trouble with the idea of a full I think a better solution is a script that updates such file. Maybe a github workflow? A periodic |
To clarify, I was talking about continuing to use In my understanding, you're also suggesting to replace Personally, I would go with that, as well, for the reasons you outlined, but that's just my opinion. 😄 That would be a fairly important change, it has more implications, and I'd love to know others' view on it. |
Thanks for the detailed feedback @enyst, I will try and roll up all the feedback from everyone into a new version sometime in the next day or two (have a few deadlines at the moment). For now I will exclude the idea of using |
End-user friendly description of the problem this fixes or functionality that this introduces
This PR provides a more detailed installation and getting started workflow designed to be user friendly for a range of user skill levels and to prevent/deflect requests for setup help for the maintainers. The intended result is a reduction in variability in the deployment state and configuration across users of the OpenHands app (development workflow will be addressed separately).
It's expected that this will require some rounds of feedback so is set to Draft. There are also further changes required to other docs that are part of this effort but I wanted feedback on the general approach ASAP before making too many changes.
Give a summary of what the PR does, explaining any non-trivial design decisions
installation.mdx
- most of the changes are to this page of the docs. The changes here are designed to move the user from zero to getting started as quickly and reliably as possible. There's a huge correlation between time-to-value and product adoption so this stage is critical for growing any project or product.getting-started.mdx
- minor heading changecommon-use-cases.mdx
- this is a new page designed to highlight common use cases and requirements and then direct users to the correct advanced documentation sections. This is designed to be more or a routing page that doesn't have any unique content but helps new users find and navigate the technical sections of the documentation at a time when they may not know the OpenHands specific terminology or may need to combine features to complete a use case. At this stage it is pretty sparse but as the feature set and documentation grows I think this will become a very useful page. It is also a good place to catch common but more difficult configuration needs that would distract or complicate users during the installation phase. It also acts as a way to advertise the more advanced capabilities of the app early on.troubleshooting.mdx
- added additional Docker errors for consistency in case users end up here at a later time.sidebars.ts
- added the new Common Use Cases page to the ToC nav treeFeedback & Open Questions
start_openhands.sh
method working right now, the frontend times out waiting for the backed client. This shouldn't be merged until Ican resolve that.Link of any specific issues this addresses
#5878