Replace Overleaf's original README with a Verso-specific one covering: the project's purpose (collaborative Quarto editor), output formats (typst/PDF and revealjs/HTML), quick-start Docker instructions, service architecture overview, a minimal .qmd example, key env vars, and a clear description of what differs from upstream Overleaf. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,80 +1,153 @@
|
||||
<h1 align="center">
|
||||
<br>
|
||||
<a href="https://www.overleaf.com"><img src="doc/logo.png" alt="Overleaf" width="300"></a>
|
||||
</h1>
|
||||
# Verso
|
||||
|
||||
<h4 align="center">An open-source online real-time collaborative LaTeX editor.</h4>
|
||||
**A collaborative real-time editor for Quarto presentations and documents.**
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/overleaf/overleaf/wiki">Wiki</a> •
|
||||
<a href="https://www.overleaf.com/for/enterprises">Server Pro</a> •
|
||||
<a href="#contributing">Contributing</a> •
|
||||
<a href="https://mailchi.mp/overleaf.com/community-edition-and-server-pro">Mailing List</a> •
|
||||
<a href="#authors">Authors</a> •
|
||||
<a href="#license">License</a>
|
||||
</p>
|
||||
Verso is a fork of [Overleaf](https://github.com/overleaf/overleaf) adapted to compile [Quarto](https://quarto.org) documents instead of LaTeX. It keeps Overleaf's real-time collaboration infrastructure while replacing the LaTeX/CLSI compiler with Quarto, enabling collaborative editing of `.qmd` files with instant PDF (via Typst) or HTML (RevealJS) preview.
|
||||
|
||||
<img src="doc/screenshot.png" alt="A screenshot of a project being edited in Overleaf Community Edition">
|
||||
<p align="center">
|
||||
Figure 1: A screenshot of a project being edited in Overleaf Community Edition.
|
||||
</p>
|
||||
---
|
||||
|
||||
## Community Edition
|
||||
## Features
|
||||
|
||||
[Overleaf](https://www.overleaf.com) is an open-source online real-time collaborative LaTeX editor. We run a hosted version at [www.overleaf.com](https://www.overleaf.com), but you can also run your own local version, and contribute to the development of Overleaf.
|
||||
- **Real-time collaboration** — multiple users editing the same `.qmd` file simultaneously, powered by Overleaf's operational-transformation engine
|
||||
- **Quarto compilation** — documents are compiled with Quarto on every save
|
||||
- **Two output formats** — set `format: typst` in the YAML frontmatter for a PDF preview, or `format: revealjs` for an interactive HTML presentation rendered in an iframe
|
||||
- **Document outline** — headings (`#`, `##`, `###`) are extracted and shown in the sidebar outline panel
|
||||
- **Math, code, tables** — standard Quarto/Pandoc Markdown features all work
|
||||
- **Auto-compile** — the preview refreshes automatically 2.5 s after you stop typing
|
||||
- **Project history** — full change history inherited from Overleaf
|
||||
|
||||
> [!CAUTION]
|
||||
> Overleaf Community Edition is intended for use in environments where **all** users are trusted. Community Edition is **not** appropriate for scenarios where isolation of users is required due to Sandbox Compiles not being available. When not using Sandboxed Compiles, users have full read and write access to the `sharelatex` container resources (filesystem, network, environment variables) when running LaTeX compiles.
|
||||
## Output formats
|
||||
|
||||
For more information on Sandbox Compiles check out our [documentation](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/server-pro-only-configuration/sandboxed-compiles).
|
||||
In the YAML frontmatter of your `.qmd` file:
|
||||
|
||||
## Enterprise
|
||||
```yaml
|
||||
format: typst # → PDF preview via Typst (no LaTeX required)
|
||||
format: revealjs # → HTML slideshow preview
|
||||
```
|
||||
|
||||
If you want help installing and maintaining Overleaf in your lab or workplace, we offer an officially supported version called [Overleaf Server Pro](https://www.overleaf.com/for/enterprises). It also includes more features for security (SSO with LDAP or SAML), administration and collaboration (e.g. tracked changes). [Find out more!](https://www.overleaf.com/for/enterprises)
|
||||
Typst is bundled with Quarto — no separate installation is needed.
|
||||
|
||||
## Keeping up to date
|
||||
## Quick start
|
||||
|
||||
Sign up to the [mailing list](https://mailchi.mp/overleaf.com/community-edition-and-server-pro) to get updates on Overleaf releases and development.
|
||||
### With Docker
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
docker run -d \
|
||||
-p 80:80 \
|
||||
-v ~/verso_data:/var/lib/overleaf \
|
||||
--name verso \
|
||||
registry.alocoq.fr/verso:latest
|
||||
```
|
||||
|
||||
We have detailed installation instructions in the [Overleaf Toolkit](https://github.com/overleaf/toolkit/).
|
||||
Then open `http://localhost` in your browser. On first run, visit `/launchpad` to create an admin account.
|
||||
|
||||
## Upgrading
|
||||
### Build from source
|
||||
|
||||
If you are upgrading from a previous version of Overleaf, please see the [Release Notes section on the Wiki](https://github.com/overleaf/overleaf/wiki#release-notes) for all of the versions between your current version and the version you are upgrading to.
|
||||
```bash
|
||||
# Build the base image (installs Quarto)
|
||||
cd server-ce
|
||||
make build-base
|
||||
|
||||
## Overleaf Docker Image
|
||||
# Build the application image
|
||||
make build-community
|
||||
```
|
||||
|
||||
This repo contains two dockerfiles, [`Dockerfile-base`](server-ce/Dockerfile-base), which builds the
|
||||
`sharelatex/sharelatex-base` image, and [`Dockerfile`](server-ce/Dockerfile) which builds the
|
||||
`sharelatex/sharelatex` (or "community") image.
|
||||
The two Dockerfiles are:
|
||||
|
||||
The Base image generally contains the basic dependencies like `wget`, plus `texlive`.
|
||||
We split this out because it's a pretty heavy set of
|
||||
dependencies, and it's nice to not have to rebuild all of that every time.
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `server-ce/Dockerfile-base` | Base OS image — installs system deps and Quarto |
|
||||
| `server-ce/Dockerfile` | Application image — installs Node services, compiles frontend |
|
||||
|
||||
The `sharelatex/sharelatex` image extends the base image and adds the actual Overleaf code
|
||||
and services.
|
||||
## Architecture
|
||||
|
||||
Use `make build-base` and `make build-community` from `server-ce/` to build these images.
|
||||
Verso is a microservices monorepo (Yarn workspaces). All services run inside a single container managed by `runit`, with `nginx` as the front router.
|
||||
|
||||
We use the [Phusion base-image](https://github.com/phusion/baseimage-docker)
|
||||
(which is extended by our `base` image) to provide us with a VM-like container
|
||||
in which to run the Overleaf services. Baseimage uses the `runit` service
|
||||
manager to manage services, and we add our init-scripts from the `server-ce/runit`
|
||||
folder.
|
||||
```
|
||||
browser ──→ nginx:80
|
||||
├── / ──────────────────→ web:4000 (main app, React UI)
|
||||
├── /socket.io ──────────→ real-time:3026 (WebSocket, OT engine)
|
||||
└── /project/*/output/* → clsi-nginx:8080 (compiled output files)
|
||||
|
||||
web → document-updater → Redis pub/sub → real-time → browser
|
||||
web → CLSI (quarto render) → output files → nginx → browser
|
||||
```
|
||||
|
||||
Key services:
|
||||
|
||||
| Service | Role |
|
||||
|---------|------|
|
||||
| `web` | HTTP API, React frontend, auth, project management |
|
||||
| `real-time` | WebSocket layer, live cursor and edit sync |
|
||||
| `document-updater` | Operational transformation, Redis pub/sub |
|
||||
| `clsi` | Quarto compiler — runs `quarto render` and serves output |
|
||||
| `docstore` | Document text storage (MongoDB) |
|
||||
| `filestore` | Binary file storage (S3 or local) |
|
||||
| `project-history` | Change history and version tracking |
|
||||
|
||||
## Writing a Quarto document
|
||||
|
||||
Minimal working example (`main.qmd`):
|
||||
|
||||
```markdown
|
||||
---
|
||||
title: My Presentation
|
||||
author: Your Name
|
||||
date: today
|
||||
format: revealjs
|
||||
---
|
||||
|
||||
## Slide one
|
||||
|
||||
Write **Markdown** here.
|
||||
|
||||
## Mathematics
|
||||
|
||||
$$\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}$$
|
||||
```
|
||||
|
||||
For PDF output, change `format: revealjs` to `format: typst`.
|
||||
|
||||
> **Note on display math**: put `$$...$$` on a single line.
|
||||
> Multi-line display math blocks can cause YAML parse errors in some Quarto versions.
|
||||
|
||||
## Environment variables
|
||||
|
||||
Verso inherits all of Overleaf's environment variables (prefixed `OVERLEAF_`).
|
||||
The most commonly needed ones:
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `OVERLEAF_APP_NAME` | `Verso` | Name shown in the UI |
|
||||
| `OVERLEAF_MONGO_URL` | `mongodb://mongo/sharelatex` | MongoDB connection string |
|
||||
| `OVERLEAF_REDIS_HOST` | `localhost` | Redis host |
|
||||
| `OVERLEAF_SITE_URL` | — | Public URL (used in emails) |
|
||||
| `OVERLEAF_ADMIN_EMAIL` | — | Email for the first admin account |
|
||||
|
||||
See the [Overleaf Server documentation](https://github.com/overleaf/overleaf/wiki) for the full list.
|
||||
|
||||
## Relation to Overleaf
|
||||
|
||||
Verso is a fork of [Overleaf Community Edition](https://github.com/overleaf/overleaf) with the following changes:
|
||||
|
||||
- LaTeX/CLSI compiler replaced by Quarto (PDF via Typst, HTML via RevealJS)
|
||||
- Default project template changed from `main.tex` to `main.qmd`
|
||||
- Document outline parser extended to read Markdown headings
|
||||
- Compiler selector in the UI replaced with a single "Quarto" option
|
||||
- Brand colours updated to Quarto's palette; name changed from Overleaf to Verso
|
||||
- TeX Live removed from the base Docker image; Quarto installed instead
|
||||
|
||||
All other infrastructure — real-time collaboration, history, auth, file storage, project management — is unchanged from Overleaf.
|
||||
|
||||
## Contributing
|
||||
|
||||
Please see the [CONTRIBUTING](CONTRIBUTING.md) file for information on contributing to the development of Overleaf.
|
||||
Contributions are welcome. Please open an issue or pull request on the [Verso repository](https://git.alocoq.fr/alois/verso).
|
||||
|
||||
## Authors
|
||||
|
||||
[The Overleaf Team](https://www.overleaf.com/about)
|
||||
The upstream Overleaf contribution guidelines are in [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
||||
## License
|
||||
|
||||
The code in this repository is released under the GNU AFFERO GENERAL PUBLIC LICENSE, version 3. A copy can be found in the [`LICENSE`](LICENSE) file.
|
||||
GNU Affero General Public License v3 — see [LICENSE](LICENSE).
|
||||
|
||||
Copyright (c) Overleaf, 2014-2025.
|
||||
Copyright © Overleaf, 2014–2025 (original code).
|
||||
Verso modifications © Alois Coquillard, 2025–present.
|
||||
|
||||
Reference in New Issue
Block a user