An open API service indexing awesome lists of open source software.

https://github.com/minuth/docura

A modern, customizable documentation viewer for OpenAPI/Swagger
https://github.com/minuth/docura

api-documentation api-tools api-viewer documentation openapi openapi-specification rapidoc rapipdf swagger swagger-ui

Last synced: 5 months ago
JSON representation

A modern, customizable documentation viewer for OpenAPI/Swagger

Awesome Lists containing this project

README

          

# Docura

Docura is a lightweight API documentation platform built on top of the excellent RapiDoc project. Drop your OpenAPI specs (YAML or JSON) into a folder and get a ready-to-use docs site with search, Try-It, and PDF export.

This project wraps RapiDoc and RapiPdf for a simple, zero-backend workflow. You still have full access to RapiDoc’s attributes and theming when you need them.

## Usage

```bash
npx create-docura-app my-api-docs
cd my-api-docs
npm install
npm run dev
```

Notes
- Requires Node.js 14+ (18+ recommended).
- A spec manifest is generated automatically at dev and build.

## What it creates

- **index.html** - Main page with RapiDoc component
- **index.js** - App logic for project switching, file upload, PDF generation
- **styles.css** - Styling with CSS custom properties for easy theming
- **vite.config.js** - Build configuration with spec manifest generation
- **public/spec/** - Directory with demo OpenAPI specs
- **package.json** - Project dependencies and scripts
- **public/spec-manifest.json** - Auto-generated map of available specs (don’t edit)

## Features

The generated project includes:

- 📁 **Multi-spec support** - Drop .yml/.yaml/.json files in `public/spec/`
- 📤 **Local upload** - Upload specs directly from your machine
- 📄 **PDF export** - Generate documentation PDFs
- 🎨 **Easy theming** - Customize appearance using the official [RapiDoc theming API](https://rapidocweb.com/api.html)

## Add your specs

- Place `.yml`, `.yaml`, or `.json` files in `public/spec/`.
- The Vite plugin writes `public/spec-manifest.json` that powers the Project dropdown.

You can also click “Upload Local Spec” to load a file without placing it in the repo.

## Customization

The scaffolded project is fully customizable. You can:

- Add your own OpenAPI specs by placing `.yml`, `.yaml`, or `.json` files in the `public/spec/` directory
- Customize the look and feel by editing `styles.css` to adjust colors, fonts, and layout
- Configure RapiDoc by adding attributes to the `` element
- Extend functionality by modifying `index.js`

## Build and deploy

Development
```bash
npm run dev
```

Production build
```bash
npm run build
npm run preview # optional local preview
```

The output is static (in `dist/`) and can be hosted on any static host (Netlify, Vercel, GitHub Pages, S3, etc.).

## Credits

Docura is built on top of RapiDoc and RapiPdf. Big thanks to the RapiDoc team and contributors.

- RapiDoc: https://github.com/rapi-doc/RapiDoc
- RapiPdf: https://github.com/mrin9/RapiPdf