Skip to content

Introduce DevContainers #3429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

brawaru
Copy link
Contributor

@brawaru brawaru commented Mar 27, 2025

Development containers allow to develop projects in a virtualised environment, e.g. with Docker on desktop, or remotely with providers like GitHub Codespaces.

This makes it extremely easy for people to contribute to the project, since the environment is already set up for them.

The following development containers are introduced with this commit:

  • app - for remote app development in the cloud.

    It includes a lightweight desktop environment and a VNC client to connect to the desktop remotely and interact with the running app.

  • app-local - for local app development on Linux desktops.

    Unlike app, it does not include desktop environment and relies on desktop forwarding provided by Visual Studio Code. This is only suitable for Linux hosts.

  • backend - for backend development.

    Features pre-configured database and other components required by Labrinth.

  • frontend - for frontend development.

    Everything you need to work with Modrinth frontend - Vue, Nuxt and other niceties included.

Some Visual Studio Code settings were also revised to remove unmaintained or broken extension recommendations, recommend different useful extensions, as well as declutter the explorer.

Development containers allow to develop projects in a virtualised
environment, e.g. with Docker on desktop, or remotely with providers
like GitHub Codespaces.

This makes it extremely easy for people to contribute to the project,
since the environment is already set up for them.

The following development containers are introduced with this commit:

- `app` - for remote app development in the cloud.

  It includes a lightweight desktop environment and a VNC client to
  connect to the desktop remotely and interact with the running app.

- `app-local` - for local app development on Linux desktops.

  Unlike `app`, it does not include desktop environment and relies on
  desktop forwarding provided by Visual Studio Code. This is only
  suitable for Linux hosts.

- `backend` - for backend development.

  Features pre-configured database and other components required by
  Labrinth.

- `frontend` - for frontend development.

  Everything you need to work with Modrinth frontend - Vue, Nuxt and
  other niceties included.

Some Visual Studio Code settings were also revised to remove
unmaintained or broken extension recommendations, recommend different
useful extensions, as well as declutter the explorer.
@brawaru brawaru force-pushed the chore/devcontainers/intro branch from 6f827bc to 9288391 Compare March 30, 2025 10:29
@IMB11 IMB11 mentioned this pull request Apr 3, 2025
4 tasks
@IMB11
Copy link
Contributor

IMB11 commented Apr 12, 2025

I've been using this for some upcoming PRs i plan to make, it's been incredibly useful and works great with Jetbrains Gateway for Webstorm/Rustrover and works seamlessly with github codespaces. Would be great to see this merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants