دليل النشر

نشر تطبيق Spring Boot على خادم VPS

انشر على VPS Cloud ←

التطوير3 دقيقة قراءة

نشر تطبيق Spring Boot على خادم VPS

يظلّ Spring Boot المعيار لواجهات برمجة التطبيقات (API) والخدمات المصغّرة بلغة Java في المؤسسات. فبدلًا من دفع رسوم منصّة PaaS تُحتسب بحسب ذاكرة JVM، يمنحك خادم VPS تحكّمًا كاملًا في الكومة (heap) ومجمّع الاتصالات والتكلفة الشهرية. إليك كيفية نشر أثرك (artifact) في بيئة الإنتاج بشكل نظيف.

لماذا تستضيف Spring Boot على VPS؟

المنصات المُدارة لـ Java تُفوتر على RAM المحجوزة وتفرض إصدار JDK المخصص، مما يُعقّد ضبط JVM وإدارة اتصالات PostgreSQL. على VPS، تتحكم في المكدس الكامل: OpenJDK 21 LTS مع Virtual Threads، وMaven للبناء، وNginx في المقدمة، وPostgreSQL 16 للبيانات.

فوائد Spring Boot المستضاف ذاتيًا

  • تحكم كامل في PostgreSQL: فهارس وVACUUM وpool الاتصالات ونسخ pg_dump احتياطية مجدولة.
  • Virtual Threads (OpenJDK 21 Loom) مع Spring WebMVC: مئات الطلبات المتزامنة دون إعادة كتابة تفاعلية.
  • تكلفة ثابتة وقابلة للتنبؤ بغض النظر عن حجم الطلبات.
  • البيانات والسجلات تحت ولايتك القضائية، مفيد للامتثال والتدقيق.
  • حرية إصدار JDK والاعتماديات دون قيود buildpack.
  • نشر قابل للتكرار: fat JAR واحد، وأمر java -jar واحد.

المتطلبات

لتطبيق Spring Boot مع PostgreSQL، خطط لـ 2 vCPU و2 غيغابايت RAM كحد أدنى؛ استهدف 4 غيغابايت لخدمات متعددة. Ubuntu 24.04 LTS هو OS الموصى به — OpenJDK 21 في المستودعات الرسمية، لا PPA مطلوب. اسم النطاق اختياري: بدونه، نفق SSH للمنفذ 8080 يكفي للتطوير والاختبار.

نشر Spring Boot خطوة بخطوة

01

تثبيت OpenJDK 21 وPostgreSQL

اتصل بـ SSH ونفّذ apt-get install -y maven nginx postgresql postgresql-contrib. Maven يسحب OpenJDK 21 LTS تلقائيًا. تحقق: java -version (21.x)، mvn -version، وpsql --version (16.x).

02

إنشاء قاعدة البيانات والمستخدم

اتصل بـ sudo -u postgres psql ونفّذ CREATE USER myapp WITH PASSWORD 'كلمة_مرور_قوية'; CREATE DATABASE myappdb OWNER myapp;. عيّن spring.datasource.url=jdbc:postgresql://localhost/myappdb في application.properties.

03

بناء ورفع الـ JAR

نفّذ mvn clean package -DskipTests محليًا، ثم انقل fat JAR إلى /var/www/مشروعك/app.jar عبر scp. أنشئ application.properties مع بيانات PostgreSQL وserver.port=8080.

04

إنشاء خدمة systemd

أنشئ /etc/systemd/system/مشروعك.service مع ExecStart=/usr/bin/java -jar /var/www/مشروعك/app.jar، Restart=always، User=www-data. نفّذ systemctl daemon-reload && systemctl enable --now مشروعك.

05

إعداد Nginx وتفعيل HTTPS

أنشئ كتلة خادم Nginx مع proxy_pass http://127.0.0.1:8080;. نفّذ certbot --nginx -d نطاقك.com للحصول على شهادة Let's Encrypt. Spring Boot يستمع داخليًا فقط؛ Nginx يتعامل مع TLS.

استخدم Virtual Threads من Java 21 مع Spring MVC لمضاعفة الإنتاجية دون التحول إلى WebFlux: أضف spring.threads.virtual.enabled=true في application.properties. كل طلب HTTP يُنفَّذ في thread افتراضي خفيف.

نشر Spring Boot بنقرة واحدة من Marketplace ServOrbit

Marketplace ServOrbit يوفر قالب Spring Boot Stack مُهيَّأ مسبقًا: OpenJDK 21 LTS وMaven وNginx وPostgreSQL 16 تُثبَّت تلقائيًا على VPS عند الطلب. لا جلسة SSH للإعداد الأساسي — تصل مباشرةً لرفع JAR.

انشر Spring Boot Stack في دقائق

قالب Spring Boot Stack من ServOrbit يثبّت OpenJDK 21 LTS وMaven وNginx وPostgreSQL 16 على VPS. ارفع JAR وابدأ فورًا.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.