Skip to content

Yet another Ansible playbook for local development environment automation.

License

Notifications You must be signed in to change notification settings

smoothie/devbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

smoothie's Devbox

Yet another Ansible playbook for local development environment automation.

Development Status

⚠️ This project is currently in development and is not yet production-ready. It is a work in progress, and there may be incomplete features or known issues. Use it at your own risk.

Table of Contents

Project Description

As a developer, I enjoy a smooth local development environment. That's why I'm currently exploring this devbox.

Features

  • Custom System Dependencies: Automatic setup of essential development tools
    • HTTP
      • apache2
      • nginx
      • with SSL support
    • Code
      • PHP (5.6 - 8.3)
        • XDebug support
        • Composer
      • JavaScript
        • Node.js (via nvm)
        • Deno (via dvm)
        • npm (via nvm)
        • yarn
      • Go
      • Java
        • Gradle
        • Ivy
        • Maven
      • Python
    • Database
      • MySQL
      • MariaDB
      • PostgreSQL
      • SQLite
      • CouchDB
      • MongoDB
      • Redis
      • Memcached
      • InfluxDB
    • Messaging
      • Kafka
      • RabbitMQ
      • Gearman
    • ELK-Stack
      • Elasticsearch
      • Logstash
      • Kibana
      • Beats
    • Virtualization
      • containerd
      • Docker
      • Kubernetes
        • via k0s
          • optional k0sctl
          • Persistent storage via OpenEBS
        • via k3s
        • via kind
        • via kubeadm
        • via minikube
        • Podman
        • kubectl
          • kubectx
        • Helm
          • MetalLB (Load Balancer)
          • NGINX Ingress
        • k9s
    • Others
      • Apache Solr
      • Blackfire
      • Git
        • pre-commit
      • Grafana
      • Meilisearch
      • Minio
      • Prometheus
      • Image Optimizers
      • PDF Generation
      • Conftest
      • gcloud SDK
      • Mailpit
      • LDAP

TODO

  • Consider (ADR) splitting groups into devmachine, devcontroller:
    • The machine would be the current webserver stuff (virtual machine managed via vagrant).
    • The controller would be the host. So stuff like PHPStorm, browsers and so could be installed.
  • k0s:
    • Update kubectl auth when installing k0s.
    • Consider (ADR) extracting deployments into separate roles, maybe per use case e.g. one for ingress-nginx, another one for metallb, another one for k0sctl.
  • bash completions: Add a role which lets us add bash completions and computes enabled CLI's into that one.
  • Support self-signed apache2 vhosts
  • Fix apache2, php, user permissions
    • Context: Currently we rewrite apache, php user to vagrant:vagrant.
      This is considered a bad practice, that's why we should do something else (TBD).
  • Maintenance Tasks
    • Check stuff
      • Check for apt updates
      • Check for pip updates
      • Check for composer upgrades
      • Check for current used npm/node updates
    • Do stuff
      • Upgrade apt packages
      • Upgrade pip packages
      • Upgrade composer
      • Upgrade for current used npm/node

Installation

TBD

Usage

TBD

Contributing

Contributions are one thing that make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

About

Yet another Ansible playbook for local development environment automation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published