About this project
I run a small business system (warehouse/logistics + accounting software) built on Node.js with a SQLite database. It currently runs on a local machine, and I need it moved to a properly configured cloud server (VPS) so my team and, eventually, paying customers can access it securely over the internet.
This is a one-time setup project, not an ongoing role. Once the server is live and working correctly, the engagement is complete (I may bring you back later for occasional maintenance, but that's not guaranteed and not part of this scope).
What the app is (so you know what you're working with)
A Node.js application using Express, with a SQLite database (via better-sqlite3) The frontend is a single HTML file — not a modern framework build (no React/Vue/webpack step needed) Lightweight — this does not need enterprise-scale infrastructure. A single small server (1–2GB RAM, 1 v CPU, ~25GB disk) is enough to start No containerization needed unless you have a strong reason to recommend it
Scope of work
Recommend and set up a suitable cloud server (VPS) — Digital Ocean, Vultr, or Linode preferred, but open to your recommendation if you have a good reason Choose a data center region close to the UAE (Frankfurt or Bangalore, or your best suggestion) Lock the server down properly before installing anything: SSH key–only login (no password login), a non-root user for daily use, firewall configured to only allow the necessary ports Install Node.js and get the application running continuously in the background using a process manager (PM2 or your recommended equivalent), so it automatically restarts if it crashes or the server reboots Set up a domain/subdomain I provide (e.g. app.mydomain.com) to point to the server Install and configure a reverse proxy (Nginx or Caddy) with free, auto-renewing HTTPS (Let's Encrypt) so the app runs securely on https://, not plain http://Set up automated daily backups of the application files and database Provide me with clear, written documentation of everything you set up: server access details, how to deploy an update in the future, how to restart the app if needed, and where backups are stored Test the whole setup end-to-end with me before considering the project complete
What is NOT included in this role
Any changes to the application's own code (login system, security of the app itself) — that is a separate role I'm hiring for Security testing / penetration testing of the application — that is also a separate, independent role Ongoing day-to-day support (can be discussed separately afterward if it goes well)
What I'm looking for in a candidate
Solid experience administering Linux servers (Ubuntu preferred) Real experience deploying and running Node.js applications in production (not just locally) Comfortable with Nginx or Caddy, SSH, DNS/domain configuration, and basic firewall setup (ufw or similar) Able to explain what you're doing in plain terms, since I'm not a technical person — I need to understand my own system, not just receive a finished black box Available to do this as a short, defined project (I'd expect this to take a few days of focused work, not weeks)
To apply, please include:
A brief note on similar server setup/deployment work you've done before Your estimated timeline and cost for this scope (fixed price preferred, but open to hourly if you explain your estimate) Anything you think I'm missing or should reconsider in the scope above
حول هذا المشروع
أدير نظام أعمال صغير (نظام مستودعات/لوجستيات + برمجيات محاسبة) مبني على Node.js مع قاعدة بيانات SQLite. يعمل النظام حالياً على جهاز محلي، وأحتاج إلى نقله إلى خادم سحابي (VPS) مُعدّ بشكل صحيح حتى يتمكن فريقي، وفي النهاية عملائي، من الوصول إليه بشكل آمن عبر الإنترنت.
هذا المشروع عبارة عن إعداد لمرة واحدة، وليس دوراً مستمراً. بمجرد أن يصبح الخادم مباشراً ويعمل بشكل صحيح، تنتهي المهمة (قد أستعين بك لاحقاً للصيانة العرضية، لكن هذا غير مضمون وليس جزءاً من نطاق العمل هذا).
ماهية التطبيق (لتعرف ما الذي ستتعامل معه)
تطبيق Node.js يستخدم Express مع قاعدة بيانات SQLite (عبر better-sqlite3). الواجهة الأمامية عبارة عن ملف HTML واحد — ليس بناء إطار عمل حديث (لا حاجة لـ React/Vue/webpack). خفيف الوزن — لا يحتاج إلى بنية تحتية على مستوى المؤسسات. خادم صغير واحد (1–2 جيجابايت رام، 1 vCPU، حوالي 25 جيجابايت مساحة تخزين) يكفي للبدء. لا حاجة للحاويات (Containerization) إلا إذا كان لديك سبب قوي للتوصية بذلك.
نطاق العمل
التوصية وإعداد خادم سحابي (VPS) مناسب — يفضل Digital Ocean أو Vultr أو Linode، ولكنني منفتح على توصيتك إذا كان لديك سبب وجيه. اختيار منطقة مركز بيانات قريبة من الإمارات العربية المتحدة (فرانكفورت أو بنغالور، أو أفضل اقتراح لديك). تأمين الخادم بشكل صحيح قبل تثبيت أي شيء: تسجيل الدخول باستخدام مفتاح SSH فقط (بدون كلمة مرور)، استخدام مستخدم غير جذري (non-root) للاستخدام اليومي، وتكوين جدار حماية للسماح فقط بالمنافذ الضرورية. تثبيت Node.js وتشغيل التطبيق بشكل مستمر في الخلفية باستخدام مدير عمليات (PM2 أو ما يعادله)، بحيث تتم إعادة تشغيله تلقائياً في حالة تعطل النظام أو إعادة تشغيل الخادم. إعداد نطاق/نطاق فرعي أقوم بتوفيره (مثلاً app.mydomain.com) ليشير إلى الخادم. تثبيت وتكوين وكيل عكسي (Nginx أو Caddy) مع HTTPS مجاني يتجدد تلقائياً (Let's Encrypt) ليعمل التطبيق بشكل آمن عبر https:// وليس http:// العادي. إعداد نسخ احتياطي يومي آلي لملفات التطبيق وقاعدة البيانات. تزويدي بوثائق واضحة ومكتوبة لكل ما قمت بإعداده: تفاصيل الوصول إلى الخادم، كيفية نشر تحديث في المستقبل، كيفية إعادة تشغيل التطبيق إذا لزم الأمر، وأين يتم تخزين النسخ الاحتياطية. اختبار الإعداد بالكامل من البداية إلى النهاية معي قبل اعتبار المشروع مكتملاً.
ما لا يتضمنه هذا الدور
أي تغييرات في كود التطبيق نفسه (نظام تسجيل الدخول، أمان التطبيق بحد ذاته) — هذا دور منفصل أقوم بالتوظيف لأجله. اختبار الأمان / اختبار الاختراق للتطبيق — هذا أيضاً دور منفصل ومستقل. الدعم اليومي المستمر (يمكن مناقشته بشكل منفصل لاحقاً إذا سارت الأمور على ما يرام).
ما أبحث عنه في المرشح
خبرة قوية في إدارة خوادم Linux (يفضل Ubuntu). خبرة حقيقية في نشر وتشغيل تطبيقات Node.js في بيئة الإنتاج (وليس محلياً فقط). متمكن من Nginx أو Caddy، وSSH، وإعدادات DNS/النطاقات، وإعدادات جدار الحماية الأساسية (ufw أو ما يشابهه). قادر على شرح ما تقوم به بكلمات بسيطة، لأنني لست شخصاً تقنياً — أحتاج إلى فهم نظامي الخاص، وليس مجرد تلقي صندوق أسود جاهز. متاح للقيام بذلك كمشروع قصير ومحدد (أتوقع أن يستغرق هذا بضعة أيام من العمل المركز، وليس أسابيع).
للتقديم، يرجى إدراج ما يلي:
ملاحظة موجزة عن أعمال إعداد/نشر خوادم مشابهة قمت بها من قبل. الجدول الزمني التقديري والتكلفة لهذا النطاق (يفضل السعر الثابت، ولكنني منفتح على العمل بالساعة إذا شرحت تقديرك). أي شيء تعتقد أنني أغفلته أو يجب علي إعادة النظر فيه في نطاق العمل أعلاه.