Skip to content
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

Simplified development environment #49

Open
JohnMertz opened this issue Oct 21, 2024 · 0 comments
Open

Simplified development environment #49

JohnMertz opened this issue Oct 21, 2024 · 0 comments
Milestone

Comments

@JohnMertz
Copy link
Collaborator

I've always had 2 basic development environments:

  • A long-lived LXC container running in production which has all of my development tools installed.
  • Short-lived QEMU (KVM) VMs from the latest available image with no additional tools installed.

I'd like to have one which marries the best of both worlds. ie. An image that is built separately from the latest images which comes bundled with extra development tools and which can easily be deployed in production.

The best way to do this would probably be to have an OCI image which can pull in additional packages and helpful configurations and which can be supplemented with additional secrets and options when it is created. This should include:

  • gnupg & keychain - for signing of commits
  • neovim & sensible plugins - for an enhanced development environment
  • ssh keys & alt GitHub repo - to automatically configure developer fork

I have attempted similar things in the past by just installing MailCleaner in a distrobox, but I mostly just end up with the first environment described above with more regular snapshots and trouble with some container isolation issues. There are some tools that seek to make generation and publishing of distrobox images easier, such as https://github.com/ublue-os/boxkit .

It would be good if we had 2-3 simple commands which could get interested developers into a development environment with the ability to push to their fork quickly. This should be documented in the contributing guide when possible.

To start with, the OCI container may still have some isolation problems, so having it run in production may not be immediately available; being able to develop and have the WebUI work is the priority. However, if it does get to a state where it can work in production, then providing additional OCI images without the development tools so that MailCleaner can be deployed with Docker/Podman/Kubernetes would be a worthwhile goal as well.

@JohnMertz JohnMertz added this to the Future milestone Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant