Skip to content

emanuskript/Fenius

Repository files navigation

Fenius

License Vue 3 Node.js

A Vue-based application for manuscript workflows, including ruling scheme setup and interactive book spine visualization.


Overview

Fenius helps users move from manuscript metadata to visual workflow outputs.

Core workflows:

  • Create a ruling scheme
  • Visualise a book spine (create new or import VCEditor JSON)
  • Bookbinding pathway (currently shown as Coming soon in the UI)

Repository Structure


Prerequisites

  • Node.js 18+
  • npm 9+

Local Development

Install dependencies:

npm install

Run the app locally:

npm run serve

Default local URL:

  • http://localhost:8080

Build production assets:

npm run build

Run lint checks:

npm run lint

Sync generated book-path assets:

npm run sync:book-paths-assets

Environment & Runtime Notes

  • The project uses Vue CLI (@vue/cli-service) and serves static production output from dist/.
  • Routing is handled in-app via Vue Router, so server rewrites should route unknown paths to index.html.

Deployment (Server)

This section covers deploying the built app to a Linux server with Nginx.

Option A: Nginx static hosting (recommended)

  1. Build the app:
npm ci
npm run build
  1. Copy dist/ to your server (example path):
  • /var/www/fenius/dist
  1. Use an Nginx site config like:
server {
   listen 80;
   server_name your-domain.example;

   root /var/www/fenius/dist;
   index index.html;

   location / {
      try_files $uri $uri/ /index.html;
   }

   location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|woff2?)$ {
      expires 30d;
      add_header Cache-Control "public, max-age=2592000";
      try_files $uri =404;
   }
}
  1. Validate and reload Nginx:
sudo nginx -t
sudo systemctl reload nginx
  1. (Recommended) Add TLS with Certbot:
sudo certbot --nginx -d your-domain.example

Option B: Vercel

This repository includes vercel.json. You can connect the repo in Vercel and deploy directly.

Typical build settings:

  • Build command: npm run build
  • Output directory: dist

Troubleshooting

App works locally but routes 404 in production

Ensure your web server rewrites unknown paths to index.html (SPA fallback).

Port conflict when running locally

If 8080 is busy, stop the running process or set a custom port in Vue CLI config before starting.

Dependency issues after updates

Try a clean install:

rm -rf node_modules package-lock.json
npm install

License

This project is licensed under the Apache License 2.0. See LICENSE.

About

A bookbinding simulation app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors