Karena saya telah bekerja kurang lebih penuh waktu di [Neotoma](https://neotoma.io) (sebelumnya Asheville) sejak musim panas lalu, saya memiliki kesempatan untuk benar-benar mendalami perangkat lunak sumber terbuka untuk pertama kalinya.

Saya senang untuk mengatakan bahwa selain mengerjakan repositori yang tersedia untuk umum khusus untuk Neotoma, saya telah membuat beberapa repositori yang semoga berguna sebagai modul untuk aplikasi Node.js lainnya secara umum:

- [Park Ranger](https://github.com/markmhx/park-ranger): Manajer untuk dependensi spesifik lingkungan seperti variabel lingkungan, file konfigurasi, dan file sertifikat SSL.

  Disebut “park ranger” karena program komputer selalu berjalan di lingkungan tertentu, sering kali ditentukan oleh perangkatnya atau lingkungan tertentu yang dipilih dalam perangkat tersebut bersama dengan lingkungan lain yang memungkinkan. Dan siapa yang Anda cari ketika Anda menikmati lingkungan alam dan memiliki pertanyaan tentangnya…? Benar sekali, seorang penjaga taman.

  Saya pada dasarnya terus menulis ulang kode utilitas yang sama di seluruh repositori saya untuk menangani perbedaan berbasis lingkungan, terutama antara mesin pengembangan lokal dan host penerapan. Jadi, saya memfaktorkan ulang semuanya ke dalam modul ini untuk mempercepat peningkatan kode dan pemeliharaan di masa mendatang. Titik awal saya adalah [dotenv](https://github.com/motdotla/dotenv) namun saya segera menyadari bahwa itu terlalu sederhana untuk kebutuhan saya.

- [Hoist](https://github.com/markmhx/grunt-hoist): Serangkaian tugas Grunt untuk menerapkan aplikasi Node.js ke host dan menjalankan prosedur jarak jauh terkait.

  Mirip dengan pengalaman saya dengan Park Ranger, saya mendapati diri saya menulis ulang sedikit variasi dari rutinitas penerapan yang sama di seluruh repositori (seperti rsync'ing file, menjalankan "npm install" dan memulai ulang server jarak jauh). Jadi saya membuat serangkaian tugas ini (yang secara otomatis tersedia untuk proyek induk sebagai skrip npm) untuk membakukan cara saya melakukan pendekatan ini. Mereka juga sangat menyederhanakan pendekatan saya terhadap pengembangan berkelanjutan, bahkan ketika saya membuat layanan mikro baru atau membuat perubahan cepat pada ketergantungan lokal di sepanjang proses tersebut.

- [Proxy](https://github.com/neotoma/proxy): Server proxy untuk permintaan HTTP dan HTTPS.

  Saat saya mulai menghosting Neotoma versi awal untuk pengujian tertutup, saya memerlukan cara sederhana untuk mendukung server berbeda yang berjalan pada host yang sama di seluruh protokol (HTTP vs. HTTPS), port, dan subdomain. Misalnya, host yang sama yang menggunakan HTTP untuk menyajikan laman landas Neotoma juga melayani permintaan HTTPS ke API yang mendasarinya dan permintaan HTTP dan HTTPS ke aplikasi web Neotoma sebenarnya yang berjalan pada subdomain untuk pengujian.

  Meskipun repositori ini berada di bawah organisasi Neotoma, repositori ini dapat digunakan oleh siapa saja yang ingin melakukan hal yang sama untuk host mereka yang menjalankan banyak server.

Ada sejumlah repositori publik lain yang sedang dikembangkan dan lebih terkait langsung dengan Neotoma yang tidak akan saya cantumkan di sini tetapi dapat ditemukan di [organisasi Neotoma GitHub](https://github.com/neotoma). Meskipun saya belum secara aktif mencari kontribusi, semua repositori yang tercantum di atas dan di organisasi tersebut terbuka untuk menarik permintaan jika Anda ingin melakukan perubahan!