Prerequisites

Dossiers is a command-line tool written in Rust. You can install it using either Cargo (the Rust package manager) or npm.

Install via Cargo (Recommended)

If you have Rust installed, you can install Dossiers directly from crates.io:

cargo install dossiers

Don't have Rust? Install it from rustup.rs.

Install via npm

You can also install Dossiers using npm:

npm install -g dossiers

Or use it directly with npx without installation:

npx dossiers serve ./specs

Verify Installation

After installation, verify that Dossiers is available:

dossiers --version

You should see the version number printed to the console.

Basic Usage

The most common command is serve, which starts a local development server:

dossiers serve ./path/to/specs

This will:

  • Scan the specified directory for Markdown and AsciiDoc files
  • Generate a website with an index and individual pages for each spec
  • Start a local web server at http://localhost:8080
  • Watch for changes and automatically reload

Generating Static Sites

To generate a static site that you can deploy to any hosting service:

dossiers build ./path/to/specs -o ./output

This creates a static HTML site in the ./output directory that you can upload to GitHub Pages, Netlify, Vercel, or any other static hosting service.

Command-Line Options

View all available options:

dossiers --help

Common options include:

  • --port - Specify a different port for the development server
  • --config - Path to a configuration file (optional)
  • --title - Set a custom site title

Next Steps

Now that you have Dossiers installed, learn how to structure your specification repository:

Troubleshooting

Cargo installation fails

If you encounter errors during cargo install, make sure you have:

  • An up-to-date Rust toolchain (rustup update)
  • A C compiler installed (required for some dependencies)

Port already in use

If port 8080 is already in use, specify a different port:

dossiers serve ./specs --port 3000

Git timestamps not working

Dossiers uses Git to determine file creation and modification dates. If your directory is not a Git repository, timestamps will fall back to file system metadata.