Skip to main content
Version: v3

Repository Structure

This project uses a monorepo structure with the following directories:

  • server/: Backend code, written in Go.

    • server/cmd/: Subcommands for the neko server, such as serve and plugins.
    • server/dev/: Development scripts to run/build the neko server locally in Docker.
    • server/internal/: Internal packages used by the neko server.
    • server/pkg/: Packages used by the neko server that can be used by other projects.
    • server/plugins/: Directory for plugins that will be built and used by the neko server.
  • client/: Frontend code, written in TypeScript and Vue.js.

    • client/dev/: Development scripts to run/build the neko client locally in Docker.
    • client/public/: Public files for the neko client, such as icons and images.
    • client/src/: Source code for the neko client, including components and pages.
    • client/tools/: Tools used for generating code for the neko client, such as emojis.
  • runtime/: Runtime environment, with Xorg and Pulseaudio servers and the necessary dependencies for the applications to run.

    • runtime/fontconfig/: Font configuration files copied to /etc/fonts/conf.d/ in the neko runtime.
    • runtime/fonts/: Empty directory placeholder to include custom fonts in the neko runtime.
    • runtime/icon-theme/: Empty directory placeholder to include a custom icon theme in the neko runtime.
    • runtime/intel/ or runtime/nvidia/: Directories with files for flavor-specific releases of the neko runtime.
  • apps/: Contains the applications that run in the neko, such as Firefox, Chrome, etc.

    • apps/<app-name>/Dockerfile: Dockerfile extending BASE_IMAGE for the application used by the build script.
    • apps/<app-name>/Dockerfile.<flavor>: Dockerfile for the application with flavor-specific optimizations.
    • Supervisord configuration is expected at /etc/neko/supervisord/<app-name>.conf in the application image.
  • utils/: Utility scripts, tools, and dependencies.

    • utils/docker/: Dockerfile generator that builds the base image by concatenating multiple Dockerfiles.
    • utils/xorg-deps/: Custom-made or patched Xorg dependencies, such as drivers.
  • webpage/: Webpage code for neko.m1k1o.net, written in TypeScript and Docusaurus, deployed on GitHub Pages.

    • webpage/docs/: Documentation for the neko project, including this README file.
    • webpage/src/: Source code, components, and styles for the webpage.
    • webpage/static/: Static files for the webpage, such as images and icons.
    • webpage/versioned_*: Versioned documentation files for the neko project, generated by Docusaurus.