Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
m1k1o
GitHub Repository: m1k1o/neko
Path: blob/master/webpage/docs/developer-guide/repository-structure.md
1007 views
---
description: "Project structure of the neko repository."
---

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/scripts/: Helper scripts for generating configuration and OpenAPI docs.

    • 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.