--- 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](https://go.dev/). - `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](https://www.typescriptlang.org/) and [Vue.js](https://vuejs.org/). - `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](https://www.x.org/wiki/) and [Pulseaudio](https://www.freedesktop.org/wiki/Software/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//Dockerfile`: Dockerfile extending `BASE_IMAGE` for the application used by the build script. - `apps//Dockerfile.`: Dockerfile for the application with flavor-specific optimizations. - Supervisord configuration is expected at `/etc/neko/supervisord/.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](https://www.typescriptlang.org/) and [Docusaurus](https://docusaurus.io/), deployed on [GitHub Pages](https://pages.github.com/). - `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](https://docusaurus.io/).