{"id":43129,"date":"2026-08-12T13:29:42","date_gmt":"2026-08-12T06:29:42","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=43129"},"modified":"2026-08-12T13:29:42","modified_gmt":"2026-08-12T06:29:42","slug":"cach-cai-coolify-tren-ubuntu","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/cach-cai-coolify-tren-ubuntu\/","title":{"rendered":"C\u00e1ch C\u00e0i Coolify Tr\u00ean Ubuntu 22.04\/24.04 &#8211; C\u00e0i Coolify Tr\u00ean VPS &#038; Cloud Server"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 100%;\"><strong>C\u00e1ch c\u00e0i Coolify tr\u00ean Ubuntu<\/strong> ch\u1ec9 m\u1ea5t 5 ph\u00fat v\u1edbi m\u1ed9t d\u00f2ng l\u1ec7nh duy nh\u1ea5t \u2014 nh\u01b0ng n\u1ebfu ch\u01b0a chu\u1ea9n b\u1ecb \u0111\u00fang VPS, b\u1ea1n s\u1ebd m\u1eafc ngay l\u1ed7i port conflict ho\u1eb7c Docker kh\u00f4ng t\u01b0\u01a1ng th\u00edch. B\u00e0i vi\u1ebft n\u00e0y h\u01b0\u1edbng d\u1eabn \u0111\u1ea7y \u0111\u1ee7 c\u1ea3 Quick Install l\u1eabn Manual Install, k\u00e8m c\u1ea3nh b\u00e1o l\u1ed7i th\u1ef1c t\u1ebf t\u1eeb c\u1ed9ng \u0111\u1ed3ng, gi\u00fap b\u1ea1n self-host \u1ee9ng d\u1ee5ng thay Heroku v\u00e0 Vercel tr\u00ean VPS ri\u00eang. C\u00f9ng <a href=\"https:\/\/interdata.vn\/\">InterData<\/a> \u0111i t\u1eebng b\u01b0\u1edbc.<\/span><\/p>\n<div style=\"background-color: #eff6ff; padding: 20px; border: 1.5px solid #BFDBFE; border-radius: 12px; margin-bottom: 40px; box-shadow: 0 8px 20px rgba(37,99,235,0.05);\">\n<p style=\"font-family: 'Be Vietnam Pro', sans-serif; font-weight: bold; font-size: 18px; margin: 0 0 15px; color: #1e3a8a;\">N\u1ed8I DUNG B\u00c0I VI\u1ebeT<\/p>\n<ul style=\"list-style-type: none; padding-left: 0; margin: 0;\">\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section1\">1. Coolify l\u00e0 g\u00ec? V\u00ec sao developer Vi\u1ec7t chuy\u1ec3n sang self-host?<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section2\">2. Y\u00eau c\u1ea7u h\u1ec7 th\u1ed1ng tr\u01b0\u1edbc khi c\u00e0i Coolify tr\u00ean Ubuntu<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section3\">3. C\u00e1ch c\u00e0i Coolify tr\u00ean Ubuntu b\u1eb1ng Quick Install (1 l\u1ec7nh)<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section4\">4. C\u00e1ch c\u00e0i Coolify th\u1ee7 c\u00f4ng tr\u00ean Ubuntu (Manual Install)<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section5\">5. L\u1ed7i th\u01b0\u1eddng g\u1eb7p khi c\u00e0i Coolify v\u00e0 c\u00e1ch x\u1eed l\u00fd<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section6\">6. So s\u00e1nh Coolify v\u1edbi Heroku, Dokku v\u00e0 CapRover<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section7\">7. Deploy \u1ee9ng d\u1ee5ng \u0111\u1ea7u ti\u00ean tr\u00ean Coolify<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section8\">8. Ch\u1ecdn VPS hay Cloud Server \u0111\u1ec3 ch\u1ea1y Coolify?<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section9\">9. C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQ)<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n<style>\n.interdata-plan-carousel,.interdata-plan-carousel *{box-sizing:border-box}\n.interdata-plan-carousel{--blue:#005bea;--blue-dark:#004dcc;--text:#071832;--muted:#516173;--border:#d8e6fb;--bg:#f3f8ff;--shadow:0 5px 14px rgba(0,62,145,.08);background:var(--bg);padding:14px 56px 18px;position:relative;overflow:hidden;border-radius:20px;}\n.interdata-carousel-heading{color:#f00;font-family:Roboto,sans-serif;font-size:18px;line-height:1.35;font-weight:800;text-align:center;margin:0 0 14px}\n.interdata-plan-viewport{overflow:hidden;width:100%}\n.interdata-plan-track{display:flex;align-items:stretch;gap:12px;overflow:visible;padding:0 0 4px;transform:translate3d(0,0,0);transition:transform .45s ease;will-change:transform;touch-action:pan-y}\n.interdata-plan-card{flex:0 0 calc((100% - 24px)\/3);min-width:0;min-height:0!important;height:auto;background:#fff;border:1px solid var(--border);border-radius:8px;padding:15px 12px 13px;display:flex;flex-direction:column;box-shadow:var(--shadow)}\n.interdata-plan-title{color:var(--blue-dark);font-size:16px;line-height:1.22;font-weight:800;text-align:center;margin:0 0 7px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.interdata-plan-price{color:var(--blue-dark);font-size:24px;line-height:1;font-weight:900;text-align:center;margin-bottom:12px;white-space:nowrap;letter-spacing:0}\n.interdata-plan-price span{font-size:10px;font-weight:800;margin-left:2px}\n.interdata-plan-badge{align-self:center;display:inline-flex;align-items:center;justify-content:center;background:#ff3934;color:#fff;border-radius:5px;padding:7px 8px;font-size:9px;line-height:1;font-weight:800;margin-bottom:15px;white-space:nowrap;max-width:100%}\n.interdata-plan-features{list-style:none!important;padding:0!important;margin:0!important}\n.interdata-plan-features li{display:flex;gap:7px;align-items:flex-start;color:var(--text);font-size:12px;line-height:1.35;font-weight:700;text-align:left;margin:0 0 10px!important;padding:0!important}\n.interdata-plan-icon{width:14px;min-width:14px;height:14px;color:#0069ff;margin-top:2px}\n.interdata-plan-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n.interdata-plan-spacer{flex:1;min-height:16px}\n.interdata-plan-button{display:flex;align-items:center;justify-content:center;min-height:42px;width:100%;margin-top:auto!important;margin-bottom:0!important;background:var(--blue);color:#fff!important;border-radius:5px;font-size:13px;font-weight:800;text-decoration:none!important;box-shadow:0 7px 14px rgba(0,91,234,.24);transition:transform .2s ease,background .2s ease}\n.interdata-plan-button:hover{background:var(--blue-dark);color:#fff!important;transform:translateY(-1px)}\n.interdata-carousel-arrow{position:absolute;top:50%;z-index:5;width:44px;height:54px;border:2px solid #fff!important;border-radius:999px;background:var(--blue)!important;color:#fff!important;box-shadow:0 8px 22px rgba(0,62,145,.32);display:flex!important;align-items:center;justify-content:center;cursor:pointer;transform:translateY(-35%);transition:background .2s ease,color .2s ease,opacity .2s ease,transform .2s ease}\n.interdata-carousel-arrow:hover{background:var(--blue-dark)!important;color:#fff!important;transform:translateY(-35%) scale(1.04)}\n.interdata-carousel-arrow:disabled{opacity:.78;cursor:not-allowed;background:#8aa6cf!important;color:#fff!important}\n.interdata-carousel-arrow:disabled:hover{background:#8aa6cf!important;color:#fff!important;transform:translateY(-35%)}\n.interdata-carousel-arrow svg{display:none!important}\n.interdata-carousel-arrow:before{content:none!important;display:none!important}\n.interdata-carousel-mark{display:block!important;color:#fff!important;font-family:Arial,Helvetica,sans-serif!important;font-size:38px!important;font-weight:900!important;line-height:1!important;text-align:center!important;pointer-events:none!important;transform:translateY(-2px)}\n.interdata-carousel-prev{left:14px}\n.interdata-carousel-prev .interdata-carousel-mark{margin-left:-2px}\n.interdata-carousel-next{right:14px}\n.interdata-carousel-next .interdata-carousel-mark{margin-right:-2px}\n@media (max-width:800px){.interdata-plan-carousel{padding:12px 44px 16px}.interdata-plan-card{flex-basis:calc((100% - 12px)\/2)}.interdata-carousel-heading{font-size:16px}.interdata-carousel-prev{left:6px}.interdata-carousel-next{right:6px}}\n@media (max-width:480px){.interdata-plan-carousel{padding:12px 38px 16px}.interdata-plan-card{flex-basis:100%}.interdata-plan-price{font-size:23px}.interdata-carousel-arrow{width:34px;height:44px}.interdata-carousel-mark{font-size:32px!important}.interdata-carousel-prev{left:3px}.interdata-carousel-next{right:3px}}\n<\/style>\n\n<div class=\"interdata-plan-carousel\" data-interdata-carousel>\n  <div class=\"interdata-carousel-heading\">Si\u00eau \u01afu \u0110\u00e3i VPS \/ CLOUD SERVER - Ti\u1ebft Ki\u1ec7m \u0110\u1ebfn 70%<\/div>\n\n  <svg width=\"0\" height=\"0\" style=\"position:absolute;visibility:hidden\" aria-hidden=\"true\">\n    <symbol id=\"id-icon-cpu\" viewBox=\"0 0 24 24\"><rect x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"2\"><\/rect><path d=\"M4 9h3M4 15h3M17 9h3M17 15h3M9 4v3M15 4v3M9 17v3M15 17v3\"><\/path><path d=\"M10 10h4v4h-4z\"><\/path><\/symbol>\n    <symbol id=\"id-icon-ram\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"8\" width=\"16\" height=\"8\" rx=\"2\"><\/rect><path d=\"M7 16v2M11 16v2M15 16v2M19 16v2M7 11h1M11 11h1M15 11h1\"><\/path><\/symbol>\n    <symbol id=\"id-icon-storage\" viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\"><\/rect><path d=\"M9 7h6\"><\/path><circle cx=\"12\" cy=\"16\" r=\"1.5\"><\/circle><\/symbol>\n    <symbol id=\"id-icon-network\" viewBox=\"0 0 24 24\"><path d=\"M5 12.5a10 10 0 0 1 14 0\"><\/path><path d=\"M8.5 16a5 5 0 0 1 7 0\"><\/path><path d=\"M12 19h.01\"><\/path><\/symbol>\n    <symbol id=\"id-icon-gift\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"8\" width=\"18\" height=\"13\" rx=\"2\"><\/rect><path d=\"M12 8v13M3 12h18\"><\/path><path d=\"M7.5 8C6.1 8 5 6.9 5 5.5S6.1 3 7.5 3C10 3 12 8 12 8\"><\/path><path d=\"M16.5 8C17.9 8 19 6.9 19 5.5S17.9 3 16.5 3C14 3 12 8 12 8\"><\/path><\/symbol>\n  <\/svg>\n\n  <button class=\"interdata-carousel-arrow interdata-carousel-prev\" type=\"button\" aria-label=\"Xem 3 g\u00f3i tr\u01b0\u1edbc\" onclick=\"var r=this.closest('[data-interdata-carousel]');if(!r)return false;var t=r.querySelector('.interdata-plan-track'),c=t?t.querySelectorAll('.interdata-plan-card'):[];if(!t||!c.length)return false;var v=window.matchMedia('(max-width:480px)').matches?1:(window.matchMedia('(max-width:800px)').matches?2:3),m=Math.max(0,c.length-Math.min(v,c.length||1)),s=[],i=0;while(i&lt;m){s.push(i);i+=v}if(!s.length||s[s.length-1]!==m)s.push(m);var p=parseInt(r.getAttribute('data-inline-page')||'0',10);p=(p-1+s.length)%s.length;r.setAttribute('data-inline-page',p);var g=parseFloat(window.getComputedStyle(t).gap)||12,w=c[0].getBoundingClientRect().width;t.style.transition='transform .45s ease';t.style.transform='translate3d('+(-(w+g)*s[p])+'px,0,0)';return false;\">\n    <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n    <span class=\"interdata-carousel-mark\" aria-hidden=\"true\">&#8249;<\/span>\n  <\/button>\n\n  <div class=\"interdata-plan-viewport\">\n    <div class=\"interdata-plan-track\">\n      <!-- 7 card d\u1ef1 ph\u00f2ng: JavaScript s\u1ebd \u0111\u1ed3ng b\u1ed9 l\u1ea1i t\u1eeb API portal khi trang t\u1ea3i. -->\n      <article class=\"interdata-plan-card\" data-plan-pid=\"490\">\n        <h3 class=\"interdata-plan-title\">Premium Base<\/h3>\n        <div class=\"interdata-plan-price\">299.000 \u0111<span>\/3 th\u00e1ng<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>2 vCore Intel Xeon Scalable<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>2 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>30 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-value-plans-2026\/best-value-plans-premium-base\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"529\">\n        <h3 class=\"interdata-plan-title\">INTER PLATINUM 1<\/h3>\n        <div class=\"interdata-plan-price\">998.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>2 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>3 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>30 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/inter-platinum-series-2026\/inter-platinum-1\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"530\">\n        <h3 class=\"interdata-plan-title\">INTER PLATINUM 2<\/h3>\n        <div class=\"interdata-plan-price\">2.666.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>5 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>8 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>70 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/inter-platinum-series-2026\/inter-platinum-2\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"531\">\n        <h3 class=\"interdata-plan-title\">INTER PLATINUM 3<\/h3>\n        <div class=\"interdata-plan-price\">5.888.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>9 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>16 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>140 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/inter-platinum-series-2026\/inter-platinum-3\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"521\">\n        <h3 class=\"interdata-plan-title\">BD-Cloud 1<\/h3>\n        <div class=\"interdata-plan-price\">988.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>3 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>3 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>30 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-plan-real-cloud\/bd-cloud-1\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"522\">\n        <h3 class=\"interdata-plan-title\">BD-Cloud 2<\/h3>\n        <div class=\"interdata-plan-price\">2.988.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>4 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>8 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>80 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300 Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-plan-real-cloud\/bd-cloud-2\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"523\">\n        <h3 class=\"interdata-plan-title\">BD-Cloud 3<\/h3>\n        <div class=\"interdata-plan-price\">5.999.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>8 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>16 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>140 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>400 Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-plan-real-cloud\/bd-cloud-3\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n    <\/div>\n  <\/div>\n\n  <button class=\"interdata-carousel-arrow interdata-carousel-next\" type=\"button\" aria-label=\"Xem 3 g\u00f3i ti\u1ebfp theo\" onclick=\"var r=this.closest('[data-interdata-carousel]');if(!r)return false;var t=r.querySelector('.interdata-plan-track'),c=t?t.querySelectorAll('.interdata-plan-card'):[];if(!t||!c.length)return false;var v=window.matchMedia('(max-width:480px)').matches?1:(window.matchMedia('(max-width:800px)').matches?2:3),m=Math.max(0,c.length-Math.min(v,c.length||1)),s=[],i=0;while(i&lt;m){s.push(i);i+=v}if(!s.length||s[s.length-1]!==m)s.push(m);var p=parseInt(r.getAttribute('data-inline-page')||'0',10);p=(p+1)%s.length;r.setAttribute('data-inline-page',p);var g=parseFloat(window.getComputedStyle(t).gap)||12,w=c[0].getBoundingClientRect().width;t.style.transition='transform .45s ease';t.style.transform='translate3d('+(-(w+g)*s[p])+'px,0,0)';return false;\">\n    <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n    <span class=\"interdata-carousel-mark\" aria-hidden=\"true\">&#8250;<\/span>\n  <\/button>\n<\/div>\n\n<script>\n(function(){\n  var API_GROUPS=[\n    {url:'https:\/\/support.interdata.vn\/packages.php?gid=89&module',pids:[490]},\n    {url:'https:\/\/support.interdata.vn\/packages.php?gid=100&module',pids:[529,530,531]},\n    {url:'https:\/\/support.interdata.vn\/packages.php?gid=97&module',pids:[521,522,523]}\n  ];\n  var PLAN_CYCLES={\n    490:{key:'quarterly',label:'3 th\u00e1ng'},\n    529:{key:'annually',label:'n\u0103m'},\n    530:{key:'annually',label:'n\u0103m'},\n    531:{key:'annually',label:'n\u0103m'},\n    521:{key:'annually',label:'n\u0103m'},\n    522:{key:'annually',label:'n\u0103m'},\n    523:{key:'annually',label:'n\u0103m'}\n  };\n\n  function fetchPlanData(){\n    if(window.interdataPlanApiPromise)return window.interdataPlanApiPromise;\n\n    window.interdataPlanApiPromise=Promise.all(API_GROUPS.map(function(group){\n      return fetch(group.url,{method:'GET',mode:'cors',cache:'no-store'})\n        .then(function(response){\n          if(!response.ok)throw new Error('API '+response.status);\n          return response.json();\n        })\n        .then(function(data){\n          if(!data||data.success!==true||!Array.isArray(data.products))return [];\n          return data.products.filter(function(product){\n            return group.pids.indexOf(Number(product.pid))!==-1;\n          });\n        })\n        .catch(function(error){\n          console.warn('Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt nh\u00f3m g\u00f3i InterData:',group.url,error);\n          return [];\n        });\n    })).then(function(groups){\n      return groups.reduce(function(all,products){return all.concat(products);},[]);\n    });\n\n    return window.interdataPlanApiPromise;\n  }\n\n  function parseDescription(html){\n    var source=String(html||'')\n      .replace(\/<brs*\/?>\/gi,'n')\n      .replace(\/<\/(p|div|li)>\/gi,'n');\n    var holder=document.createElement('div');\n    holder.innerHTML=source;\n    var strong=holder.querySelector('strong');\n    var badge=strong?strong.textContent.trim():'';\n    var lines=(holder.textContent||'').split(\/r?n\/).map(function(line){\n      return line.trim();\n    }).filter(Boolean);\n    if(badge&&lines[0]===badge)lines.shift();\n    return {badge:badge,features:lines};\n  }\n\n  function iconForFeature(feature){\n    if(\/ram\/i.test(feature))return 'id-icon-ram';\n    if(\/ssd|nvme|storage|disk\/i.test(feature))return 'id-icon-storage';\n    if(\/vcore|vcpu|cpu|xeon|amd\/i.test(feature))return 'id-icon-cpu';\n    if(\/ipv4|network|mbps|gbps|bandwidth\/i.test(feature))return 'id-icon-network';\n    return 'id-icon-gift';\n  }\n\n  function createFeatureItem(feature){\n    var item=document.createElement('li');\n    var icon=document.createElement('span');\n    var svg=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','svg');\n    var use=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','use');\n    icon.className='interdata-plan-icon';\n    use.setAttribute('href','#'+iconForFeature(feature));\n    svg.appendChild(use);\n    icon.appendChild(svg);\n    item.appendChild(icon);\n    item.appendChild(document.createTextNode(feature));\n    return item;\n  }\n\n  function updateCardFromApi(root,product){\n    var pid=Number(product.pid);\n    var cycle=PLAN_CYCLES[pid];\n    var card=root.querySelector('[data-plan-pid=\"'+pid+'\"]');\n    if(!card||!cycle)return;\n\n    var title=card.querySelector('.interdata-plan-title');\n    var priceBox=card.querySelector('.interdata-plan-price');\n    var badgeBox=card.querySelector('.interdata-plan-badge');\n    var featureList=card.querySelector('.interdata-plan-features');\n    var button=card.querySelector('.interdata-plan-button');\n    var description=parseDescription(product.description);\n    var pricing=product.pricing&&product.pricing.VND;\n    var price=pricing?Number(pricing[cycle.key]):-1;\n\n    if(title&&product.name)title.textContent=product.name;\n    if(priceBox&&Number.isFinite(price)&&price>=0){\n      priceBox.textContent=Math.round(price).toLocaleString('vi-VN')+' \u0111';\n      var suffix=document.createElement('span');\n      suffix.textContent='\/'+cycle.label;\n      priceBox.appendChild(suffix);\n    }\n    if(badgeBox&&description.badge)badgeBox.textContent=description.badge;\n    if(featureList&&description.features.length){\n      featureList.textContent='';\n      description.features.forEach(function(feature){\n        featureList.appendChild(createFeatureItem(feature));\n      });\n    }\n    if(button&&product.product_url)button.href=product.product_url;\n  }\n\n  function setupInterDataCarousel(root){\n    var track=root.querySelector('.interdata-plan-track');\n    var prev=root.querySelector('.interdata-carousel-prev');\n    var next=root.querySelector('.interdata-carousel-next');\n    if(!track||!prev||!next||track.dataset.ready==='1')return;\n    track.dataset.ready='1';\n    prev.disabled=false;\n    next.disabled=false;\n    var activePage=0;\n    var touchStartX=null;\n\n    function visibleCards(){\n      if(window.matchMedia&&window.matchMedia('(max-width:480px)').matches)return 1;\n      if(window.matchMedia&&window.matchMedia('(max-width:800px)').matches)return 2;\n      return 3;\n    }\n\n    function pageStarts(){\n      var total=track.querySelectorAll('.interdata-plan-card').length;\n      var visible=Math.min(visibleCards(),total||1);\n      var maxStart=Math.max(0,total-visible);\n      var starts=[];\n      var start=0;\n      while(start<maxStart){\n        starts.push(start);\n        start+=visible;\n      }\n      if(!starts.length||starts[starts.length-1]!==maxStart)starts.push(maxStart);\n      return starts;\n    }\n\n    function renderSlide(animate){\n      var cards=track.querySelectorAll('.interdata-plan-card');\n      var starts=pageStarts();\n      if(!cards.length||!starts.length)return;\n      if(activePage>=starts.length)activePage=starts.length-1;\n      if(activePage<0)activePage=0;\n\n      var cardWidth=cards[0].getBoundingClientRect().width;\n      var trackStyle=window.getComputedStyle?window.getComputedStyle(track):null;\n      var gap=trackStyle?parseFloat(trackStyle.columnGap||trackStyle.gap):12;\n      if(!Number.isFinite(gap))gap=12;\n      if(cardWidth<=0)return;\n\n      track.style.transition=animate?'transform .45s ease':'none';\n      track.style.transform='translate3d('+(-(cardWidth+gap)*starts[activePage])+'px,0,0)';\n      prev.setAttribute('aria-disabled',starts.length>1?'false':'true');\n      next.setAttribute('aria-disabled',starts.length>1?'false':'true');\n    }\n\n    function move(direction){\n      var starts=pageStarts();\n      if(starts.length<=1)return;\n      activePage=parseInt(root.getAttribute('data-inline-page')||activePage,10)||0;\n      activePage=(activePage+direction+starts.length)%starts.length;\n      root.setAttribute('data-inline-page',activePage);\n      renderSlide(true);\n    }\n\n    track.addEventListener('touchstart',function(event){\n      touchStartX=event.touches&&event.touches[0]?event.touches[0].clientX:null;\n    },{passive:true});\n    track.addEventListener('touchend',function(event){\n      if(touchStartX===null)return;\n      var endX=event.changedTouches&&event.changedTouches[0]?event.changedTouches[0].clientX:touchStartX;\n      var distance=endX-touchStartX;\n      touchStartX=null;\n      if(Math.abs(distance)>=40)move(distance<0?1:-1);\n    },{passive:true});\n\n    function resetAfterResize(){\n      activePage=0;\n      root.setAttribute('data-inline-page','0');\n      renderSlide(false);\n    }\n\n    window.addEventListener('resize',resetAfterResize);\n    window.addEventListener('load',resetAfterResize);\n    if('ResizeObserver' in window){\n      var resizeObserver=new ResizeObserver(function(){renderSlide(false);});\n      resizeObserver.observe(root);\n    }\n    window.requestAnimationFrame(function(){renderSlide(false);});\n    window.setTimeout(function(){renderSlide(false);},250);\n    window.setTimeout(function(){renderSlide(false);},1000);\n\n    fetchPlanData().then(function(products){\n      products.forEach(function(product){updateCardFromApi(root,product);});\n      renderSlide(false);\n    });\n  }\n\n  function initInterDataCarousels(){\n    document.querySelectorAll('[data-interdata-carousel]').forEach(setupInterDataCarousel);\n  }\n\n  if(document.readyState==='loading'){\n    document.addEventListener('DOMContentLoaded',initInterDataCarousels);\n  }else{\n    initInterDataCarousels();\n  }\n\n  if('MutationObserver' in window){\n    var initQueued=false;\n    new MutationObserver(function(){\n      if(initQueued)return;\n      initQueued=true;\n      window.requestAnimationFrame(function(){\n        initQueued=false;\n        initInterDataCarousels();\n      });\n    }).observe(document.documentElement,{childList:true,subtree:true});\n  }\n})();\n<\/script>\n\n\t<div id=\"gap-1401741346\" class=\"gap-element clearfix\" style=\"display:block; height:auto;\">\n\t\t\n<style>\n#gap-1401741346 {\n  padding-top: 15px;\n}\n<\/style>\n\t<\/div>\n\t\n<h2 id=\"section1\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">Coolify l\u00e0 g\u00ec? V\u00ec sao developer Vi\u1ec7t chuy\u1ec3n sang self-host?<\/h2>\n<p style=\"text-align: justify;\">Coolify l\u00e0 n\u1ec1n t\u1ea3ng PaaS (Platform as a Service) m\u00e3 ngu\u1ed3n m\u1edf, cho ph\u00e9p b\u1ea1n deploy \u1ee9ng d\u1ee5ng web, database v\u00e0 d\u1ecbch v\u1ee5 tr\u00ean VPS ri\u00eang th\u00f4ng qua giao di\u1ec7n web \u2014 kh\u00f4ng c\u1ea7n g\u00f5 l\u1ec7nh m\u1ed7i l\u1ea7n tri\u1ec3n khai. Coolify ch\u1ea1y tr\u00ean <a href=\"https:\/\/interdata.vn\/blog\/docker-la-gi\/\">Docker<\/a>, d\u00f9ng Traefik l\u00e0m reverse proxy v\u00e0 t\u1ef1 \u0111\u1ed9ng c\u1ea5p SSL qua <a href=\"https:\/\/interdata.vn\/blog\/lets-encrypt-la-gi\/\">Let&#8217;s Encrypt<\/a>. Ng\u01b0\u1eddi s\u00e1ng l\u1eadp l\u00e0 Andras Bacsai (coollabsio).<\/p>\n<p style=\"text-align: justify;\">Heroku \u0111\u00e3 b\u1ecf free tier t\u1eeb 2022. Vercel v\u00e0 Railway t\u00ednh ph\u00ed theo usage, d\u1ec5 ph\u00e1t sinh bill b\u1ea5t ng\u1edd khi app c\u00f3 traffic t\u0103ng \u0111\u1ed9t bi\u1ebfn. V\u1edbi Coolify tr\u00ean VPS, b\u1ea1n tr\u1ea3 m\u1ed9t m\u1ee9c ph\u00ed c\u1ed1 \u0111\u1ecbnh h\u00e0ng th\u00e1ng cho server v\u00e0 deploy kh\u00f4ng gi\u1edbi h\u1ea1n s\u1ed1 app. Chi ph\u00ed c\u00f3 th\u1ec3 ch\u1ec9 b\u1eb1ng 1\/3 \u0111\u1ebfn 1\/5 so v\u1edbi d\u00f9ng PaaS tr\u1ea3 ph\u00ed, \u0111\u1eb7c bi\u1ec7t khi ch\u1ea1y 3\u20135 \u1ee9ng d\u1ee5ng tr\u1edf l\u00ean.<\/p>\n<p style=\"text-align: justify;\">Coolify v4 (phi\u00ean b\u1ea3n stable hi\u1ec7n t\u1ea1i) h\u1ed7 tr\u1ee3:<\/p>\n<ul>\n<li>Deploy t\u1eeb GitHub, <a href=\"https:\/\/interdata.vn\/blog\/gitlab-la-gi\/\">GitLab<\/a>, Bitbucket ho\u1eb7c Git repository b\u1ea5t k\u1ef3<\/li>\n<li>One-click service: PostgreSQL, Redis, MongoDB, MySQL, MinIO, Plausible Analytics, Uptime Kuma, Ghost, n8n v\u00e0 h\u01a1n 100 d\u1ecbch v\u1ee5 kh\u00e1c<\/li>\n<li>Preview deployment cho m\u1ed7i pull request<\/li>\n<li>SSL t\u1ef1 \u0111\u1ed9ng qua Let&#8217;s Encrypt<\/li>\n<li>Qu\u1ea3n l\u00fd multi-server t\u1eeb m\u1ed9t dashboard<\/li>\n<li>Backup database l\u00ean S3-compatible storage<\/li>\n<li>H\u1ed7 tr\u1ee3 Nixpacks, Dockerfile v\u00e0 <a href=\"https:\/\/interdata.vn\/blog\/docker-compose-la-gi\/\">Docker Compose<\/a><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43175\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Coolify-Dashboard.png\" alt=\"Coolify Dashboard\" width=\"1000\" height=\"484\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Coolify-Dashboard.png 1904w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Coolify-Dashboard-300x145.png 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Coolify-Dashboard-1024x495.png 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Coolify-Dashboard-768x371.png 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Coolify-Dashboard-1536x743.png 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h2 id=\"section2\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">Y\u00eau c\u1ea7u h\u1ec7 th\u1ed1ng tr\u01b0\u1edbc khi c\u00e0i Coolify tr\u00ean Ubuntu<\/h2>\n<p style=\"text-align: justify;\">Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u, b\u1ea1n c\u1ea7n m\u1ed9t <a href=\"https:\/\/interdata.vn\/blog\/vps-la-gi\/\">VPS<\/a> ch\u1ea1y <a href=\"https:\/\/interdata.vn\/blog\/ubuntu-server-la-gi\/\">Ubuntu Server<\/a> v\u1edbi quy\u1ec1n root ho\u1eb7c sudo. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 b\u1ea3ng c\u1ea5u h\u00ecnh chi ti\u1ebft theo t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c c\u1ee7a Coolify:<\/p>\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 15px;\">\n<thead>\n<tr style=\"background-color: #1e3a8a; color: #fff;\">\n<th style=\"padding: 12px 15px; text-align: left; border: 1px solid #BFDBFE;\">Th\u00f4ng s\u1ed1<\/th>\n<th style=\"padding: 12px 15px; text-align: center; border: 1px solid #BFDBFE;\">T\u1ed1i thi\u1ec3u<\/th>\n<th style=\"padding: 12px 15px; text-align: center; border: 1px solid #BFDBFE;\">Khuy\u1ebfn ngh\u1ecb (3\u20135 app)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">CPU<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">2 vCPU<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">4 vCPU<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">RAM<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">2 GB<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">4\u20138 GB<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">\u1ed4 c\u1ee9ng<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">30 GB SSD<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">80\u2013100 GB NVMe<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">H\u1ec7 \u0111i\u1ec1u h\u00e0nh<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\" colspan=\"2\">Ubuntu 22.04 LTS ho\u1eb7c Ubuntu 24.04 LTS (khuy\u1ebfn ngh\u1ecb 24.04)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Docker<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\" colspan=\"2\">Docker Engine 24+ (script c\u00e0i t\u1ef1 c\u00e0i Docker n\u1ebfu ch\u01b0a c\u00f3)<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Port c\u1ea7n m\u1edf<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\" colspan=\"2\">22 (SSH), 80 (HTTP), 443 (HTTPS), 8000 (Coolify dashboard)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Quy\u1ec1n truy c\u1eadp<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\" colspan=\"2\">root ho\u1eb7c user c\u00f3 sudo, SSH enabled<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><strong>L\u01b0u \u00fd quan tr\u1ecdng:<\/strong> Ubuntu non-LTS (v\u00ed d\u1ee5 23.10, 24.10) kh\u00f4ng \u0111\u01b0\u1ee3c Quick Install h\u1ed7 tr\u1ee3 \u2014 ph\u1ea3i d\u00f9ng Manual Install. N\u1ebfu VPS ch\u1ec9 c\u00f3 2 GB RAM, b\u1ea1n v\u1eabn c\u00e0i \u0111\u01b0\u1ee3c Coolify nh\u01b0ng khi build app n\u1eb7ng (Next.js, Laravel) s\u1ebd thi\u1ebfu RAM. N\u00ean b\u1eadt swap 2\u20134 GB ho\u1eb7c ch\u1ecdn VPS 4 GB RAM tr\u1edf l\u00ean.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">Checklist chu\u1ea9n b\u1ecb VPS tr\u01b0\u1edbc khi c\u00e0i Coolify<\/h3>\n<ul>\n<li>VPS ch\u1ea1y Ubuntu 22.04 LTS ho\u1eb7c 24.04 LTS, c\u00f3 quy\u1ec1n root<\/li>\n<li>SSH ho\u1ea1t \u0111\u1ed9ng b\u00ecnh th\u01b0\u1eddng (k\u1ebft n\u1ed1i \u0111\u01b0\u1ee3c t\u1eeb terminal\/PuTTY)<\/li>\n<li>Port 80 v\u00e0 443 ch\u01b0a b\u1ecb chi\u1ebfm b\u1edfi <a href=\"https:\/\/interdata.vn\/blog\/nginx-la-gi\/\">Nginx<\/a> ho\u1eb7c Apache<\/li>\n<li>Docker ch\u01b0a c\u00e0i ho\u1eb7c c\u00e0i b\u1eb1ng Docker Engine ch\u00ednh th\u1ee9c (kh\u00f4ng ph\u1ea3i Docker Snap)<\/li>\n<li>Firewall (ufw) \u0111\u00e3 m\u1edf port 22, 80, 443, 8000<\/li>\n<li>Domain \u0111\u00e3 tr\u1ecf DNS v\u1ec1 IP c\u1ee7a VPS (n\u1ebfu mu\u1ed1n d\u00f9ng domain ngay)<\/li>\n<\/ul>\n<p><!-- BOX CTA #1 \u2014 VPS --><\/p>\n<div style=\"display: flex; flex-wrap: wrap; background-color: #fff; border: 1.5px solid #BFDBFE; box-shadow: 0 8px 20px rgba(37,99,235,0.08); border-radius: 12px; overflow: hidden; margin: 35px 0;\">\n<div style=\"flex: 1; min-width: 250px; background: linear-gradient(135deg, #1E3A8A 0%, #2563EB 100%); display: flex; align-items: center; justify-content: center; padding: 30px; text-align: center;\">\n<div>\n<p style=\"color: #fff; font-size: 34px; font-family: 'Be Vietnam Pro', sans-serif; font-weight: bold; margin: 0; line-height: 1.1;\">Thu\u00ea VPS InterData<\/p>\n<p style=\"color: #dbeafe; font-size: 15px; font-weight: 600; margin-top: 12px;\">CPU th\u1ebf h\u1ec7 m\u1edbi, SSD NVMe U.2, h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt 24\/7<\/p>\n<\/div>\n<\/div>\n<div style=\"flex: 2; padding: 25px; min-width: 300px;\">\n<h3 style=\"font-family: 'Be Vietnam Pro', sans-serif; color: #1e3a8a; margin-top: 0; font-size: 20px;\">C\u1ea7n VPS Ubuntu \u0111\u1ec3 c\u00e0i Coolify?<\/h3>\n<p style=\"text-align: justify; font-size: 15px; margin-bottom: 15px;\">Coolify c\u1ea7n VPS c\u00f3 quy\u1ec1n root, Docker Engine v\u00e0 t\u1ed1i thi\u1ec3u 2 CPU + 4 GB RAM \u0111\u1ec3 ch\u1ea1y \u1ed5n \u0111\u1ecbnh. VPS InterData c\u00e0i s\u1eb5n template Ubuntu 22.04\/24.04 LTS, h\u1ed7 tr\u1ee3 Docker ngay sau khi kh\u1edfi t\u1ea1o, \u0111i k\u00e8m SSD NVMe U.2 t\u1ed1c \u0111\u1ed9 \u0111\u1ecdc\/ghi cao \u2014 ph\u00f9 h\u1ee3p cho vi\u1ec7c build v\u00e0 deploy container li\u00ean t\u1ee5c. \u0110\u1ed9i k\u1ef9 thu\u1eadt h\u1ed7 tr\u1ee3 24\/7 n\u1ebfu b\u1ea1n c\u1ea7n tr\u1ee3 gi\u00fap c\u1ea5u h\u00ecnh ban \u0111\u1ea7u.<\/p>\n<p><a style=\"background: linear-gradient(90deg, #2563EB 0%, #1E3A8A 100%); color: #fff; padding: 12px 25px; text-decoration: none; font-weight: 600; border-radius: 8px; font-size: 15px; display: inline-block; box-shadow: 0 5px 15px rgba(37,99,235,0.3);\" href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener\">Xem g\u00f3i VPS c\u00e0i Coolify \u27f6<\/a><\/p>\n<\/div>\n<\/div>\n<h2 id=\"section3\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">C\u00e1ch c\u00e0i Coolify tr\u00ean Ubuntu b\u1eb1ng Quick Install (1 l\u1ec7nh)<\/h2>\n<p style=\"text-align: justify;\"><strong>\u0110\u00e2y l\u00e0 c\u00e1ch nhanh nh\u1ea5t<\/strong> \u0111\u1ec3 c\u00e0i Coolify tr\u00ean Ubuntu LTS. Script ch\u00ednh th\u1ee9c s\u1ebd t\u1ef1 \u0111\u1ed9ng c\u00e0i Docker Engine (n\u1ebfu ch\u01b0a c\u00f3), c\u1ea5u h\u00ecnh Docker daemon, t\u1ea1o SSH key, t\u1ea3i Docker Compose files v\u00e0 kh\u1edfi \u0111\u1ed9ng Coolify. To\u00e0n b\u1ed9 qu\u00e1 tr\u00ecnh m\u1ea5t kho\u1ea3ng 2\u20135 ph\u00fat t\u00f9y t\u1ed1c \u0111\u1ed9 m\u1ea1ng.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 1: SSH v\u00e0o VPS<\/h3>\n<p style=\"text-align: justify;\">M\u1edf terminal (ho\u1eb7c PuTTY tr\u00ean Windows) v\u00e0 k\u1ebft n\u1ed1i SSH v\u1edbi quy\u1ec1n root:<\/p>\n<pre><code>ssh root@IP_VPS_CUA_BAN<\/code><\/pre>\n<p style=\"text-align: justify;\">Thay <code>IP_VPS_CUA_BAN<\/code> b\u1eb1ng \u0111\u1ecba ch\u1ec9 IP th\u1eadt c\u1ee7a VPS. N\u1ebfu d\u00f9ng user th\u01b0\u1eddng, h\u00e3y \u0111\u1ea3m b\u1ea3o user \u0111\u00f3 c\u00f3 quy\u1ec1n sudo.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 2: C\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng<\/h3>\n<pre><code>apt update &amp;&amp; apt upgrade -y<\/code><\/pre>\n<p style=\"text-align: justify;\">B\u01b0\u1edbc n\u00e0y \u0111\u1ea3m b\u1ea3o c\u00e1c package h\u1ec7 th\u1ed1ng (curl, wget, openssl) \u1edf phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, tr\u00e1nh l\u1ed7i t\u01b0\u01a1ng th\u00edch khi script Coolify ch\u1ea1y.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 3: Ch\u1ea1y script c\u00e0i \u0111\u1eb7t Coolify<\/h3>\n<pre><code>curl -fsSL https:\/\/cdn.coollabs.io\/coolify\/install.sh | sudo bash<\/code><\/pre>\n<p style=\"text-align: justify;\">Script s\u1ebd t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n:<\/p>\n<ol>\n<li>Ki\u1ec3m tra v\u00e0 c\u00e0i c\u00e1c dependency: curl, wget, git, jq, openssl<\/li>\n<li>C\u00e0i Docker Engine 24+ (n\u1ebfu ch\u01b0a c\u00f3) v\u00e0 c\u1ea5u h\u00ecnh Docker daemon<\/li>\n<li>T\u1ea1o SSH key cho Coolify t\u1ea1i <code>\/data\/coolify\/ssh\/<\/code><\/li>\n<li>T\u1ea3i Docker Compose configuration files<\/li>\n<li>T\u1ea1o Docker network <code>coolify<\/code><\/li>\n<li>Kh\u1edfi \u0111\u1ed9ng Coolify b\u1eb1ng Docker Compose<\/li>\n<\/ol>\n<p style=\"text-align: justify;\">Ch\u1edd cho \u0111\u1ebfn khi terminal hi\u1ec3n th\u1ecb th\u00f4ng b\u00e1o c\u00e0i \u0111\u1eb7t th\u00e0nh c\u00f4ng. Kh\u00f4ng t\u1eaft terminal gi\u1eefa ch\u1eebng.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43173\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Chay-script-cai-dat-Coolify.png\" alt=\"Ch\u1ea1y script c\u00e0i \u0111\u1eb7t Coolify\" width=\"1000\" height=\"648\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Chay-script-cai-dat-Coolify.png 1580w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Chay-script-cai-dat-Coolify-300x194.png 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Chay-script-cai-dat-Coolify-1024x664.png 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Chay-script-cai-dat-Coolify-768x498.png 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Chay-script-cai-dat-Coolify-1536x995.png 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 4: Truy c\u1eadp Coolify Dashboard<\/h3>\n<p style=\"text-align: justify;\">M\u1edf tr\u00ecnh duy\u1ec7t v\u00e0 truy c\u1eadp:<\/p>\n<pre><code>http:\/\/IP_VPS_CUA_BAN:8000<\/code><\/pre>\n<p style=\"text-align: justify;\"><strong>T\u1ea1o t\u00e0i kho\u1ea3n admin ngay l\u1eadp t\u1ee9c.<\/strong> \u0110\u00e2y l\u00e0 b\u01b0\u1edbc b\u1eaft bu\u1ed9c. N\u1ebfu kh\u00f4ng t\u1ea1o ngay, b\u1ea5t k\u1ef3 ai bi\u1ebft IP VPS c\u1ee7a b\u1ea1n \u0111\u1ec1u c\u00f3 th\u1ec3 truy c\u1eadp port 8000 v\u00e0 t\u1ef1 t\u1ea1o t\u00e0i kho\u1ea3n admin \u2014 chi\u1ebfm quy\u1ec1n qu\u1ea3n tr\u1ecb to\u00e0n b\u1ed9 server. Sau khi t\u1ea1o admin xong, trang \u0111\u0103ng k\u00fd s\u1ebd t\u1ef1 \u0111\u1ed9ng \u0111\u00f3ng.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43174\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Truy-cap-Coolify-Dashboard.png\" alt=\"Truy c\u1eadp Coolify Dashboard\" width=\"1000\" height=\"699\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Truy-cap-Coolify-Dashboard.png 1374w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Truy-cap-Coolify-Dashboard-300x210.png 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Truy-cap-Coolify-Dashboard-1024x715.png 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/08\/Truy-cap-Coolify-Dashboard-768x537.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 5: C\u1ea5u h\u00ecnh ban \u0111\u1ea7u<\/h3>\n<p style=\"text-align: justify;\">Sau khi \u0111\u0103ng nh\u1eadp dashboard, Coolify s\u1ebd h\u1ecfi b\u1ea1n v\u00e0i th\u00f4ng tin c\u01a1 b\u1ea3n:<\/p>\n<p><strong>Ch\u1ecdn lo\u1ea1i m\u00e1y ch\u1ee7:<\/strong> Ch\u1ecdn n\u01a1i tri\u1ec3n khai c\u00e1c \u1ee9ng d\u1ee5ng v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n. B\u1ea1n c\u00f3 th\u1ec3 ch\u1ecdn <strong>&#8220;This Machine&#8221;<\/strong> \u0111\u1ec3 b\u1eaft \u0111\u1ea7u nhanh tr\u00ean VPS hi\u1ec7n t\u1ea1i.<\/p>\n<h2 id=\"section4\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">C\u00e1ch c\u00e0i Coolify th\u1ee7 c\u00f4ng tr\u00ean Ubuntu (Manual Install)<\/h2>\n<p style=\"text-align: justify;\">Manual Install ph\u00f9 h\u1ee3p khi b\u1ea1n d\u00f9ng Ubuntu non-LTS, mu\u1ed1n ki\u1ec3m so\u00e1t t\u1eebng b\u01b0\u1edbc, ho\u1eb7c VPS \u0111\u00e3 c\u00f3 Docker Engine c\u00e0i s\u1eb5n. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 quy tr\u00ecnh theo t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c t\u1ea1i <a href=\"https:\/\/coolify.io\/docs\/get-started\/installation\" target=\"_blank\" rel=\"noopener nofollow\">coolify.io\/docs<\/a>.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 1: C\u00e0i Docker Engine<\/h3>\n<p style=\"text-align: justify;\">N\u1ebfu VPS ch\u01b0a c\u00f3 Docker, c\u00e0i b\u1eb1ng script ch\u00ednh th\u1ee9c c\u1ee7a Docker (kh\u00f4ng d\u00f9ng <code>apt install docker.io<\/code> v\u00e0 tuy\u1ec7t \u0111\u1ed1i kh\u00f4ng d\u00f9ng Docker Snap):<\/p>\n<pre><code>curl -fsSL https:\/\/get.docker.com | sh<\/code><\/pre>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra Docker \u0111\u00e3 ch\u1ea1y:<\/p>\n<pre><code>docker version<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 2: T\u1ea1o th\u01b0 m\u1ee5c c\u1ea7n thi\u1ebft<\/h3>\n<pre><code>mkdir -p \/data\/coolify\/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance,metrics,logs}<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 3: T\u1ea1o SSH key cho Coolify<\/h3>\n<pre><code>ssh-keygen -f \/data\/coolify\/ssh\/id.root@host.docker.internal -t ed25519 -N '' -C root@coolify<\/code><\/pre>\n<p style=\"text-align: justify;\">Th\u00eam public key v\u00e0o authorized_keys \u0111\u1ec3 Coolify t\u1ef1 SSH v\u00e0o server:<\/p>\n<pre><code>cat \/data\/coolify\/ssh\/id.root@host.docker.internal.pub &gt;&gt; ~\/.ssh\/authorized_keys\r\nchmod 600 ~\/.ssh\/authorized_keys<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 4: T\u1ea3i file c\u1ea5u h\u00ecnh Docker Compose<\/h3>\n<pre><code>curl -fsSL https:\/\/cdn.coollabs.io\/coolify\/docker-compose.yml -o \/data\/coolify\/source\/docker-compose.yml\r\ncurl -fsSL https:\/\/cdn.coollabs.io\/coolify\/docker-compose.prod.yml -o \/data\/coolify\/source\/docker-compose.prod.yml\r\ncurl -fsSL https:\/\/cdn.coollabs.io\/coolify\/.env.production -o \/data\/coolify\/source\/.env<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 5: Set permission v\u00e0 t\u1ea1o Docker network<\/h3>\n<pre><code>chown -R 9999:root \/data\/coolify\r\nchmod -R 700 \/data\/coolify\r\n\r\ndocker network create --attachable coolify 2&gt;\/dev\/null<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">B\u01b0\u1edbc 6: Kh\u1edfi \u0111\u1ed9ng Coolify<\/h3>\n<pre><code>cd \/data\/coolify\/source\r\ndocker compose up -d --pull always --remove-orphans --force-recreate<\/code><\/pre>\n<p style=\"text-align: justify;\">Ch\u1edd kho\u1ea3ng 1\u20132 ph\u00fat \u0111\u1ec3 t\u1ea5t c\u1ea3 container kh\u1edfi \u0111\u1ed9ng. Ki\u1ec3m tra tr\u1ea1ng th\u00e1i:<\/p>\n<pre><code>docker compose ps<\/code><\/pre>\n<p style=\"text-align: justify;\">Khi th\u1ea5y c\u00e1c container <code>coolify<\/code>, <code>coolify-db<\/code>, <code>coolify-realtime<\/code> \u1edf tr\u1ea1ng th\u00e1i &#8220;Up&#8221; \u2014 truy c\u1eadp <code>http:\/\/IP_VPS:8000<\/code> v\u00e0 t\u1ea1o t\u00e0i kho\u1ea3n admin ngay.<\/p>\n<p><!-- BOX CTA #2 \u2014 CANH ME --><\/p>\n<div style=\"background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%); border: 1.5px solid #2563EB; border-radius: 12px; padding: 28px; margin: 35px 0; text-align: center;\">\n<p style=\"font-family: 'Be Vietnam Pro', sans-serif; font-size: 22px; font-weight: bold; color: #1e3a8a; margin: 0 0 8px;\">S\u0103n deal VPS &amp; Cloud Server tr\u01b0\u1edbc khi ch\u1ed1t g\u00f3i<\/p>\n<p style=\"font-size: 15px; color: #4b5563; margin-bottom: 20px;\">\u0110\u00e3 bi\u1ebft c\u00e1ch c\u00e0i Coolify, gi\u1edd c\u1ea7n ch\u1ecdn VPS ph\u00f9 h\u1ee3p? Canh Me t\u1ed5ng h\u1ee3p khuy\u1ebfn m\u00e3i, m\u00e3 gi\u1ea3m gi\u00e1 v\u00e0 hot deal VPS, Cloud Server m\u1edbi nh\u1ea5t c\u1ee7a InterData \u2014 xem tr\u01b0\u1edbc \u0111\u1ec3 ch\u1ecdn c\u1ea5u h\u00ecnh ch\u1ea1y Coolify v\u1edbi chi ph\u00ed t\u1ed1t nh\u1ea5t.<\/p>\n<p><a style=\"background: #2563EB; color: #fff; padding: 12px 30px; text-decoration: none; font-weight: 600; border-radius: 8px; display: inline-block;\" href=\"https:\/\/interdata.vn\/canhme\/\" target=\"_blank\" rel=\"noopener\">Xem hot deal t\u1ea1i Canh Me \u27f6<\/a><\/p>\n<\/div>\n<h2 id=\"section5\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">L\u1ed7i th\u01b0\u1eddng g\u1eb7p khi c\u00e0i Coolify tr\u00ean Ubuntu v\u00e0 c\u00e1ch x\u1eed l\u00fd<\/h2>\n<p style=\"text-align: justify;\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 5 l\u1ed7i m\u00e0 h\u1ea7u h\u1ebft ng\u01b0\u1eddi c\u00e0i Coolify l\u1ea7n \u0111\u1ea7u \u0111\u1ec1u g\u1eb7p. N\u1ebfu b\u1ea1n chu\u1ea9n b\u1ecb tr\u01b0\u1edbc, s\u1ebd ti\u1ebft ki\u1ec7m h\u00e0ng gi\u1edd debug.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">L\u1ed7i 1: Port 80\/443 b\u1ecb chi\u1ebfm b\u1edfi Nginx ho\u1eb7c Apache<\/h3>\n<p style=\"text-align: justify;\">Coolify d\u00f9ng Traefik l\u00e0m reverse proxy, c\u1ea7n chi\u1ebfm port 80 v\u00e0 443. N\u1ebfu VPS \u0111\u00e3 <a href=\"https:\/\/interdata.vn\/blog\/huong-dan-cai-dat-nginx-ubuntu-centos\/\">c\u00e0i \u0111\u1eb7t Nginx<\/a> ho\u1eb7c Apache \u0111ang ch\u1ea1y, Traefik kh\u00f4ng kh\u1edfi \u0111\u1ed9ng \u0111\u01b0\u1ee3c. Ki\u1ec3m tra:<\/p>\n<pre><code>sudo lsof -i :80\r\nsudo lsof -i :443<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu th\u1ea5y nginx ho\u1eb7c apache2, b\u1ea1n c\u00f3 hai l\u1ef1a ch\u1ecdn:<\/p>\n<ul>\n<li><strong>C\u00e1ch 1 (khuy\u1ebfn ngh\u1ecb):<\/strong> G\u1ee1 b\u1ecf Nginx\/Apache n\u1ebfu kh\u00f4ng c\u1ea7n d\u00f9ng cho m\u1ee5c \u0111\u00edch kh\u00e1c: <code>sudo systemctl stop nginx &amp;&amp; sudo systemctl disable nginx<\/code><\/li>\n<li><strong>C\u00e1ch 2:<\/strong> Gi\u1eef Nginx l\u00e0m reverse proxy ph\u00eda tr\u01b0\u1edbc, c\u1ea5u h\u00ecnh Coolify d\u00f9ng port kh\u00e1c cho Traefik \u2014 nh\u01b0ng c\u00e1ch n\u00e0y ph\u1ee9c t\u1ea1p h\u01a1n v\u00e0 ph\u1ea3i t\u1ef1 c\u1ea5u h\u00ecnh SSL.<\/li>\n<\/ul>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">L\u1ed7i 2: Docker c\u00e0i qua Snap kh\u00f4ng t\u01b0\u01a1ng th\u00edch<\/h3>\n<p style=\"text-align: justify;\">Ubuntu Server m\u1eb7c \u0111\u1ecbnh c\u00f3 th\u1ec3 c\u00e0i Docker qua Snap \u2014 nh\u01b0ng Docker Snap kh\u00f4ng t\u01b0\u01a1ng th\u00edch v\u1edbi Coolify. Ki\u1ec3m tra:<\/p>\n<pre><code>which docker\r\nsnap list | grep docker<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu Docker c\u00e0i qua Snap, g\u1ee1 b\u1ecf v\u00e0 c\u00e0i l\u1ea1i b\u1eb1ng Docker Engine ch\u00ednh th\u1ee9c:<\/p>\n<pre><code>sudo snap remove docker\r\ncurl -fsSL https:\/\/get.docker.com | sh<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">L\u1ed7i 3: Kh\u00f4ng t\u1ea1o t\u00e0i kho\u1ea3n admin ngay \u2014 b\u1ecb chi\u1ebfm quy\u1ec1n server<\/h3>\n<p style=\"text-align: justify;\">Sau khi c\u00e0i xong, port 8000 m\u1edf cho b\u1ea5t k\u1ef3 ai truy c\u1eadp. N\u1ebfu b\u1ea1n \u0111\u1ec3 qua \u0111\u00eam m\u00e0 ch\u01b0a t\u1ea1o admin, bot scan ho\u1eb7c ng\u01b0\u1eddi l\u1ea1 c\u00f3 th\u1ec3 truy c\u1eadp v\u00e0 t\u1ea1o t\u00e0i kho\u1ea3n admin tr\u01b0\u1edbc b\u1ea1n. H\u1eadu qu\u1ea3: h\u1ecd ki\u1ec3m so\u00e1t to\u00e0n b\u1ed9 Coolify dashboard, c\u00f3 th\u1ec3 deploy code b\u1ea5t k\u1ef3 l\u00ean server.<\/p>\n<p style=\"text-align: justify;\"><strong>Gi\u1ea3i ph\u00e1p:<\/strong> T\u1ea1o admin ngay trong 1\u20132 ph\u00fat sau khi c\u00e0i xong. N\u1ebfu kh\u00f4ng th\u1ec3 t\u1ea1o ngay, d\u00f9ng firewall ch\u1eb7n port 8000 t\u1eeb b\u00ean ngo\u00e0i cho \u0111\u1ebfn khi s\u1eb5n s\u00e0ng:<\/p>\n<pre><code>sudo ufw deny 8000<\/code><\/pre>\n<p style=\"text-align: justify;\">M\u1edf l\u1ea1i khi c\u1ea7n truy c\u1eadp: <code>sudo ufw allow 8000<\/code><\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">L\u1ed7i 4: VPS 2 GB RAM \u2014 build app b\u1ecb kill do thi\u1ebfu b\u1ed9 nh\u1edb<\/h3>\n<p style=\"text-align: justify;\">Coolify ch\u1ea1y \u0111\u01b0\u1ee3c tr\u00ean 2 GB RAM, nh\u01b0ng khi build app Node.js ho\u1eb7c Laravel, qu\u00e1 tr\u00ecnh build ti\u00eau t\u1ed1n 1\u20133 GB RAM. H\u1ec7 th\u1ed1ng s\u1ebd kill process v\u00ec OOM (Out of Memory). B\u1eadt swap \u0111\u1ec3 gi\u1ea3m r\u1ee7i ro:<\/p>\n<pre><code>sudo fallocate -l 4G \/swapfile\r\nsudo chmod 600 \/swapfile\r\nsudo mkswap \/swapfile\r\nsudo swapon \/swapfile\r\necho '\/swapfile none swap sw 0 0' | sudo tee -a \/etc\/fstab<\/code><\/pre>\n<p style=\"text-align: justify;\">Swap kh\u00f4ng thay th\u1ebf \u0111\u01b0\u1ee3c RAM th\u1eadt \u2014 build s\u1ebd ch\u1eadm h\u01a1n \u0111\u00e1ng k\u1ec3 so v\u1edbi VPS 4\u20138 GB RAM. N\u1ebfu b\u1ea1n ch\u1ea1y 3+ app v\u00e0 c\u00f3 database, n\u00ean d\u00f9ng VPS 4 GB RAM tr\u1edf l\u00ean.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">L\u1ed7i 5: Kh\u00f4ng c\u1eadp nh\u1eadt Coolify \u2014 d\u00ednh l\u1ed7 h\u1ed5ng b\u1ea3o m\u1eadt<\/h3>\n<p style=\"text-align: justify;\">N\u0103m 2026, Coolify \u0111\u00e3 \u0111\u01b0\u1ee3c ph\u00e1t hi\u1ec7n v\u00e0 v\u00e1 nhi\u1ec1u l\u1ed7 h\u1ed5ng nghi\u00eam tr\u1ecdng (CVE-2026-34592 Authentication Bypass, CVE-2026-34034 Command Injection, CVE-2026-27957 RCE). N\u1ebfu ch\u1ea1y phi\u00ean b\u1ea3n c\u0169 m\u00e0 kh\u00f4ng c\u1eadp nh\u1eadt, server c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 b\u1ecb khai th\u00e1c t\u1eeb xa.<\/p>\n<p style=\"text-align: justify;\">Coolify c\u00f3 t\u00ednh n\u0103ng auto-update trong dashboard (Settings \u2192 Auto Update). B\u1eadt l\u00ean v\u00e0 ki\u1ec3m tra phi\u00ean b\u1ea3n \u0111\u1ecbnh k\u1ef3.<\/p>\n<h2 id=\"section6\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">So s\u00e1nh Coolify v\u1edbi Heroku, Dokku v\u00e0 CapRover<\/h2>\n<p style=\"text-align: justify;\">N\u1ebfu b\u1ea1n \u0111ang ph\u00e2n v\u00e2n gi\u1eefa c\u00e1c PaaS, b\u1ea3ng d\u01b0\u1edbi \u0111\u00e2y so s\u00e1nh 4 l\u1ef1a ch\u1ecdn ph\u1ed5 bi\u1ebfn nh\u1ea5t theo ti\u00eau ch\u00ed m\u00e0 developer Vi\u1ec7t quan t\u00e2m:<\/p>\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14px;\">\n<thead>\n<tr style=\"background-color: #1e3a8a; color: #fff;\">\n<th style=\"padding: 12px 10px; text-align: left; border: 1px solid #BFDBFE;\">Ti\u00eau ch\u00ed<\/th>\n<th style=\"padding: 12px 10px; text-align: center; border: 1px solid #BFDBFE;\">Coolify<\/th>\n<th style=\"padding: 12px 10px; text-align: center; border: 1px solid #BFDBFE;\">Heroku<\/th>\n<th style=\"padding: 12px 10px; text-align: center; border: 1px solid #BFDBFE;\">Dokku<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Lo\u1ea1i<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Self-hosted, m\u00e3 ngu\u1ed3n m\u1edf<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Managed PaaS, tr\u1ea3 ph\u00ed<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Self-hosted, m\u00e3 ngu\u1ed3n m\u1edf<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Giao di\u1ec7n<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Web UI \u0111\u1ea7y \u0111\u1ee7<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Web UI + CLI<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">CLI thu\u1ea7n (kh\u00f4ng c\u00f3 web UI)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Chi ph\u00ed<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Mi\u1ec5n ph\u00ed (tr\u1ea3 ti\u1ec1n VPS)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">$5\u201325+\/dyno\/th\u00e1ng<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Mi\u1ec5n ph\u00ed (tr\u1ea3 ti\u1ec1n VPS)<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">SSL t\u1ef1 \u0111\u1ed9ng<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">C\u00f3 (Let&#8217;s Encrypt qua Traefik)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">C\u00f3 (ACM)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">C\u00f3 (plugin letsencrypt)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Database one-click<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">PostgreSQL, Redis, MongoDB, MySQL, MariaDB<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Add-on tr\u1ea3 ph\u00ed<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Plugin (c\u1ea7n c\u00e0i th\u00eam)<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Multi-server<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">C\u00f3 (qu\u1ea3n l\u00fd t\u1eeb 1 dashboard)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Kh\u00f4ng (d\u00f9ng Pipeline)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Kh\u00f4ng<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Preview Deployment<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">C\u00f3 (theo PR)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">C\u00f3 (Review Apps)<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Kh\u00f4ng<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #BFDBFE;\">Ph\u00f9 h\u1ee3p v\u1edbi<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Dev mu\u1ed1n web UI, self-host nhi\u1ec1u app<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Dev kh\u00f4ng mu\u1ed1n qu\u1ea3n l\u00fd server<\/td>\n<td style=\"padding: 10px; text-align: center; border: 1px solid #BFDBFE;\">Dev th\u00edch CLI, ch\u1ea1y 1\u20132 app nh\u1ecf<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><strong>K\u1ebft lu\u1eadn ng\u1eafn:<\/strong> Coolify l\u00e0 l\u1ef1a ch\u1ecdn t\u1ed1t nh\u1ea5t n\u1ebfu b\u1ea1n mu\u1ed1n giao di\u1ec7n web, ch\u1ea1y nhi\u1ec1u app + database tr\u00ean c\u00f9ng server, v\u00e0 kh\u00f4ng mu\u1ed1n ph\u1ee5 thu\u1ed9c v\u00e0o PaaS tr\u1ea3 ph\u00ed. Dokku ph\u00f9 h\u1ee3p n\u1ebfu b\u1ea1n quen CLI v\u00e0 ch\u1ec9 c\u1ea7n deploy 1\u20132 app \u0111\u01a1n gi\u1ea3n. Heroku v\u1eabn c\u00f3 gi\u00e1 tr\u1ecb n\u1ebfu b\u1ea1n kh\u00f4ng mu\u1ed1n qu\u1ea3n l\u00fd server \u2014 nh\u01b0ng chi ph\u00ed s\u1ebd t\u0103ng nhanh khi scale.<\/p>\n<h2 id=\"section7\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">Deploy \u1ee9ng d\u1ee5ng \u0111\u1ea7u ti\u00ean tr\u00ean Coolify sau khi c\u00e0i \u0111\u1eb7t<\/h2>\n<p style=\"text-align: justify;\">C\u00e0i xong Coolify ch\u1ec9 m\u1edbi l\u00e0 b\u01b0\u1edbc \u0111\u1ea7u. Ph\u1ea7n n\u00e0y h\u01b0\u1edbng d\u1eabn b\u1ea1n deploy m\u1ed9t \u1ee9ng d\u1ee5ng th\u1eadt \u2014 t\u1eeb k\u1ebft n\u1ed1i GitHub \u0111\u1ebfn c\u1ea5u h\u00ecnh domain v\u00e0 b\u1eadt SSL.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">K\u1ebft n\u1ed1i GitHub v\u1edbi Coolify<\/h3>\n<ol>\n<li>Trong Coolify dashboard, v\u00e0o <strong>Sources<\/strong> \u2192 <strong>Add<\/strong> \u2192 ch\u1ecdn <strong>GitHub App<\/strong><\/li>\n<li>Coolify s\u1ebd h\u01b0\u1edbng d\u1eabn b\u1ea1n t\u1ea1o m\u1ed9t GitHub App tr\u00ean t\u00e0i kho\u1ea3n GitHub c\u1ee7a b\u1ea1n. L\u00e0m theo h\u01b0\u1edbng d\u1eabn tr\u00ean m\u00e0n h\u00ecnh, c\u1ea5p quy\u1ec1n truy c\u1eadp repo.<\/li>\n<li>Sau khi authorize xong, b\u1ea1n s\u1ebd th\u1ea5y danh s\u00e1ch repo trong Coolify.<\/li>\n<\/ol>\n<p style=\"text-align: justify;\">Coolify c\u0169ng h\u1ed7 tr\u1ee3 GitLab, Bitbucket v\u00e0 b\u1ea5t k\u1ef3 Git repository public n\u00e0o. N\u1ebfu d\u00f9ng GitLab self-hosted, b\u1ea1n c\u00f3 th\u1ec3 k\u1ebft n\u1ed1i qua Deploy Key.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">T\u1ea1o project v\u00e0 deploy app<\/h3>\n<ol>\n<li>V\u00e0o <strong>Projects<\/strong> \u2192 <strong>Add New Project<\/strong> \u2192 \u0111\u1eb7t t\u00ean (v\u00ed d\u1ee5 &#8220;My Blog&#8221;)<\/li>\n<li>Trong project, ch\u1ecdn <strong>Add New Resource<\/strong> \u2192 <strong>Public Repository<\/strong> ho\u1eb7c <strong>Private Repository (GitHub App)<\/strong><\/li>\n<li>Nh\u1eadp URL repo ho\u1eb7c ch\u1ecdn t\u1eeb danh s\u00e1ch repo \u0111\u00e3 k\u1ebft n\u1ed1i<\/li>\n<li>Coolify t\u1ef1 ph\u00e1t hi\u1ec7n lo\u1ea1i app (Node.js, PHP, Python, static site) qua Nixpacks. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 ch\u1ecdn build b\u1eb1ng Dockerfile ho\u1eb7c Docker Compose n\u1ebfu repo \u0111\u00e3 c\u00f3 s\u1eb5n.<\/li>\n<li>Nh\u1ea5n <strong>Deploy<\/strong> \u2014 theo d\u00f5i build log realtime tr\u00ean dashboard<\/li>\n<\/ol>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">C\u1ea5u h\u00ecnh domain v\u00e0 SSL t\u1ef1 \u0111\u1ed9ng<\/h3>\n<p style=\"text-align: justify;\">Sau khi app deploy th\u00e0nh c\u00f4ng:<\/p>\n<ol>\n<li>V\u00e0o ph\u1ea7n <strong>Settings<\/strong> c\u1ee7a resource \u2192 m\u1ee5c <strong>Domains<\/strong><\/li>\n<li>Nh\u1eadp domain b\u1ea1n mu\u1ed1n g\u1eafn (v\u00ed d\u1ee5 <code>app.yourdomain.com<\/code>). DNS c\u1ee7a domain ph\u1ea3i tr\u1ecf A record v\u1ec1 IP VPS.<\/li>\n<li>Traefik s\u1ebd t\u1ef1 \u0111\u1ed9ng xin ch\u1ee9ng ch\u1ec9 SSL t\u1eeb Let&#8217;s Encrypt \u2014 kh\u00f4ng c\u1ea7n c\u1ea5u h\u00ecnh g\u00ec th\u00eam. HTTPS ho\u1ea1t \u0111\u1ed9ng trong 1\u20132 ph\u00fat.<\/li>\n<\/ol>\n<p style=\"text-align: justify;\">N\u1ebfu c\u1ea7n database (PostgreSQL, Redis, MySQL), v\u00e0o <strong>Projects<\/strong> \u2192 <strong>Add New Resource<\/strong> \u2192 <strong>Database<\/strong> \u2192 ch\u1ecdn lo\u1ea1i \u2192 Coolify t\u1ea1o container database v\u1edbi credentials t\u1ef1 sinh. B\u1ea1n copy connection string \u0111\u1ec3 g\u1eafn v\u00e0o environment variable c\u1ee7a app.<\/p>\n<h2 id=\"section8\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">Ch\u1ecdn VPS hay Cloud Server \u0111\u1ec3 ch\u1ea1y Coolify?<\/h2>\n<p style=\"text-align: justify;\">C\u00e2u tr\u1ea3 l\u1eddi ph\u1ee5 thu\u1ed9c v\u00e0o s\u1ed1 l\u01b0\u1ee3ng app b\u1ea1n ch\u1ea1y v\u00e0 t\u1ea7n su\u1ea5t thay \u0111\u1ed5i t\u1ea3i.<\/p>\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 15px;\">\n<thead>\n<tr style=\"background-color: #1e3a8a; color: #fff;\">\n<th style=\"padding: 12px 15px; text-align: left; border: 1px solid #BFDBFE;\">Ti\u00eau ch\u00ed<\/th>\n<th style=\"padding: 12px 15px; text-align: center; border: 1px solid #BFDBFE;\">VPS<\/th>\n<th style=\"padding: 12px 15px; text-align: center; border: 1px solid #BFDBFE;\">Cloud Server<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Quy m\u00f4<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">1\u20135 app, 1\u20132 database<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">5\u201315+ app, multi-database, multi-server<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Scale t\u00e0i nguy\u00ean<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">N\u00e2ng g\u00f3i c\u1ed1 \u0111\u1ecbnh<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">T\u0103ng\/gi\u1ea3m RAM, CPU theo nhu c\u1ea7u, kh\u00f4ng \u0111\u1ed5i m\u00e1y<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Chi ph\u00ed<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">C\u1ed1 \u0111\u1ecbnh, d\u1ec5 d\u1ef1 to\u00e1n<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">Linh ho\u1ea1t h\u01a1n khi t\u1ea3i bi\u1ebfn \u0111\u1ed9ng<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px 15px; border: 1px solid #BFDBFE;\">Ph\u00f9 h\u1ee3p<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">Freelancer, startup nh\u1ecf, d\u1ef1 \u00e1n c\u00e1 nh\u00e2n<\/td>\n<td style=\"padding: 10px 15px; text-align: center; border: 1px solid #BFDBFE;\">Agency, team dev, doanh nghi\u1ec7p c\u1ea7n scale nhanh<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><strong>Khuy\u1ebfn ngh\u1ecb th\u1ef1c t\u1ebf:<\/strong> B\u1eaft \u0111\u1ea7u v\u1edbi VPS 4 GB RAM n\u1ebfu b\u1ea1n m\u1edbi d\u00f9ng Coolify l\u1ea7n \u0111\u1ea7u v\u00e0 ch\u1ea1y d\u01b0\u1edbi 5 app. Khi c\u1ea7n qu\u1ea3n l\u00fd nhi\u1ec1u app h\u01a1n, th\u00eam database n\u1eb7ng, ho\u1eb7c d\u00f9ng t\u00ednh n\u0103ng multi-server c\u1ee7a Coolify \u0111\u1ec3 ph\u00e2n t\u1ea3i \u2014 chuy\u1ec3n sang Cloud Server \u0111\u1ec3 n\u00e2ng\/h\u1ea1 t\u00e0i nguy\u00ean nhanh m\u00e0 kh\u00f4ng c\u1ea7n migrate d\u1eef li\u1ec7u sang m\u00e1y m\u1edbi.<\/p>\n<p style=\"text-align: justify;\">\u0110\u1ec3 tham kh\u1ea3o, Andras Bacsai \u2014 ng\u01b0\u1eddi s\u00e1ng l\u1eadp Coolify \u2014 chia s\u1ebb setup th\u1ef1c t\u1ebf c\u1ee7a m\u00ecnh: server 8 GB RAM, 4 CPU, 150 GB storage, ch\u1ea1y \u0111\u1ed3ng th\u1eddi 3 \u1ee9ng d\u1ee5ng Node.js, 4 static sites, Plausible Analytics, Uptime Kuma, Ghost, 3 Redis v\u00e0 2 PostgreSQL.<\/p>\n<p><!-- BOX CTA #3 \u2014 CLOUD SERVER --><\/p>\n<div style=\"display: flex; flex-wrap: wrap; background-color: #fff; border: 1.5px solid #BFDBFE; box-shadow: 0 8px 20px rgba(37,99,235,0.08); border-radius: 12px; overflow: hidden; margin: 35px 0;\">\n<div style=\"flex: 1; min-width: 250px; background: linear-gradient(135deg, #1E3A8A 0%, #2563EB 100%); display: flex; align-items: center; justify-content: center; padding: 30px; text-align: center;\">\n<div>\n<p style=\"color: #fff; font-size: 34px; font-family: 'Be Vietnam Pro', sans-serif; font-weight: bold; margin: 0; line-height: 1.1;\">Cloud Server InterData<\/p>\n<p style=\"color: #dbeafe; font-size: 15px; font-weight: 600; margin-top: 12px;\">N\u00e2ng\/h\u1ea1 t\u00e0i nguy\u00ean nhanh theo t\u1ea3i, m\u1ea1ng t\u1ed1c \u0111\u1ed9 cao<\/p>\n<\/div>\n<\/div>\n<div style=\"flex: 2; padding: 25px; min-width: 300px;\">\n<h3 style=\"font-family: 'Be Vietnam Pro', sans-serif; color: #1e3a8a; margin-top: 0; font-size: 20px;\">Coolify qu\u1ea3n l\u00fd nhi\u1ec1u app, database, c\u1ea7n scale nhanh?<\/h3>\n<p style=\"text-align: justify; font-size: 15px; margin-bottom: 15px;\">Khi Coolify host 5\u201310+ \u1ee9ng d\u1ee5ng k\u00e8m database, build app n\u1eb7ng nh\u01b0 Next.js ho\u1eb7c Laravel, ho\u1eb7c b\u1ea1n b\u1eaft \u0111\u1ea7u d\u00f9ng multi-server \u2014 Cloud Server InterData cho ph\u00e9p t\u0103ng RAM, CPU ngay m\u00e0 kh\u00f4ng c\u1ea7n migrate d\u1eef li\u1ec7u. H\u1ea1 t\u1ea7ng ch\u1ea1y tr\u00ean SSD NVMe U.2, k\u1ebft n\u1ed1i m\u1ea1ng t\u1ed1c \u0111\u1ed9 cao, k\u00e8m ch\u1ed1ng DDoS v\u00e0 backup \u0111\u1ecbnh k\u1ef3.<\/p>\n<p><a style=\"background: linear-gradient(90deg, #2563EB 0%, #1E3A8A 100%); color: #fff; padding: 12px 25px; text-decoration: none; font-weight: 600; border-radius: 8px; font-size: 15px; display: inline-block; box-shadow: 0 5px 15px rgba(37,99,235,0.3);\" href=\"https:\/\/interdata.vn\/cloud-server\/\" target=\"_blank\" rel=\"noopener\">Xem g\u00f3i Cloud Server \u27f6<\/a><\/p>\n<\/div>\n<\/div>\n<h2 id=\"section9\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 c\u00e1ch c\u00e0i Coolify tr\u00ean Ubuntu<\/h2>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">Coolify c\u00f3 mi\u1ec5n ph\u00ed kh\u00f4ng?<\/h3>\n<p style=\"text-align: justify;\">Coolify ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed khi t\u1ef1 host tr\u00ean VPS c\u1ee7a b\u1ea1n \u2014 m\u00e3 ngu\u1ed3n m\u1edf theo gi\u1ea5y ph\u00e9p Apache 2.0. Chi ph\u00ed duy nh\u1ea5t l\u00e0 ti\u1ec1n thu\u00ea VPS ho\u1eb7c Cloud Server. Coolify c\u0169ng c\u00f3 b\u1ea3n Cloud hosted tr\u1ea3 ph\u00ed n\u1ebfu b\u1ea1n kh\u00f4ng mu\u1ed1n t\u1ef1 qu\u1ea3n l\u00fd server, nh\u01b0ng b\u00e0i vi\u1ebft n\u00e0y h\u01b0\u1edbng d\u1eabn c\u00e1ch self-host.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">C\u00e0i Coolify tr\u00ean Ubuntu 22.04 hay 24.04 LTS t\u1ed1t h\u01a1n?<\/h3>\n<p style=\"text-align: justify;\">C\u1ea3 hai \u0111\u1ec1u \u0111\u01b0\u1ee3c Coolify h\u1ed7 tr\u1ee3 ch\u00ednh th\u1ee9c qua Quick Install. Ubuntu 24.04 LTS \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb v\u00ec c\u00f3 h\u1ed7 tr\u1ee3 d\u00e0i h\u1ea1n \u0111\u1ebfn 2029, kernel v\u00e0 package m\u1edbi h\u01a1n. Ubuntu 22.04 v\u1eabn ch\u1ea1y t\u1ed1t n\u1ebfu VPS \u0111ang d\u00f9ng s\u1eb5n \u2014 kh\u00f4ng c\u1ea7n c\u00e0i l\u1ea1i OS ch\u1ec9 \u0111\u1ec3 n\u00e2ng l\u00ean 24.04.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">VPS bao nhi\u00eau RAM th\u00ec \u0111\u1ee7 ch\u1ea1y Coolify?<\/h3>\n<p style=\"text-align: justify;\">T\u1ed1i thi\u1ec3u 2 GB RAM \u0111\u1ec3 Coolify ho\u1ea1t \u0111\u1ed9ng, nh\u01b0ng th\u1ef1c t\u1ebf c\u1ea7n 4 GB tr\u1edf l\u00ean n\u1ebfu b\u1ea1n build app Node.js, Laravel ho\u1eb7c ch\u1ea1y k\u00e8m database. V\u1edbi 2 GB, b\u1ea1n n\u00ean b\u1eadt swap 2\u20134 GB v\u00e0 ch\u1ec9 ch\u1ea1y 1\u20132 app nh\u1eb9 (static site, API nh\u1ecf).<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">Coolify d\u00f9ng Traefik hay Nginx l\u00e0m reverse proxy?<\/h3>\n<p style=\"text-align: justify;\">M\u1eb7c \u0111\u1ecbnh Coolify d\u00f9ng Traefik \u2014 t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd routing, SSL v\u00e0 load balancing cho t\u1ea5t c\u1ea3 app \u0111\u01b0\u1ee3c deploy. B\u1ea1n kh\u00f4ng c\u1ea7n c\u00e0i Nginx ri\u00eang. N\u1ebfu VPS \u0111ang ch\u1ea1y Nginx cho m\u1ee5c \u0111\u00edch kh\u00e1c, c\u1ea7n t\u1eaft Nginx tr\u01b0\u1edbc khi c\u00e0i Coolify ho\u1eb7c c\u1ea5u h\u00ecnh Nginx proxy pass \u0111\u1ebfn Traefik \u2014 nh\u01b0ng c\u00e1ch n\u00e0y ph\u1ee9c t\u1ea1p v\u00e0 kh\u00f4ng khuy\u1ebfn ngh\u1ecb cho ng\u01b0\u1eddi m\u1edbi.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 19px; font-weight: bold; margin: 25px 0 15px;\">Coolify c\u00f3 h\u1ed7 tr\u1ee3 deploy Laravel, Next.js, Django kh\u00f4ng?<\/h3>\n<p style=\"text-align: justify;\">C\u00f3. Coolify d\u00f9ng Nixpacks \u0111\u1ec3 t\u1ef1 ph\u00e1t hi\u1ec7n ng\u00f4n ng\u1eef v\u00e0 framework, sau \u0111\u00f3 build Docker image t\u1ef1 \u0111\u1ed9ng. Laravel (PHP), Next.js (Node.js), Django (Python), Rails (Ruby), Go, Rust \u0111\u1ec1u \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3. N\u1ebfu app c\u00f3 Dockerfile ri\u00eang, Coolify s\u1ebd \u01b0u ti\u00ean d\u00f9ng Dockerfile \u0111\u00f3 thay v\u00ec Nixpacks.<\/p>\n<div style=\"border-top: 2px dashed #BFDBFE; margin-top: 50px; padding-top: 30px;\">\n<h3 style=\"font-family: 'Be Vietnam Pro', sans-serif; color: #1e3a8a; font-size: 22px; font-weight: bold; margin-bottom: 15px;\">B\u1eaft \u0111\u1ea7u self-host \u1ee9ng d\u1ee5ng v\u1edbi Coolify tr\u00ean VPS Ubuntu<\/h3>\n<p style=\"text-align: justify;\">B\u1ea1n \u0111\u00e3 n\u1eafm \u0111\u1ea7y \u0111\u1ee7 c\u00e1ch c\u00e0i Coolify tr\u00ean Ubuntu \u2014 t\u1eeb Quick Install m\u1ed9t d\u00f2ng l\u1ec7nh \u0111\u1ebfn Manual Install ki\u1ec3m so\u00e1t t\u1eebng b\u01b0\u1edbc, c\u00f9ng c\u00e1ch x\u1eed l\u00fd c\u00e1c l\u1ed7i ph\u1ed5 bi\u1ebfn nh\u1ea5t. Coolify bi\u1ebfn VPS Ubuntu th\u00e0nh m\u1ed9t n\u1ec1n t\u1ea3ng PaaS ri\u00eang: deploy app, qu\u1ea3n l\u00fd database, c\u1ea5p SSL t\u1ef1 \u0111\u1ed9ng \u2014 t\u1ea5t c\u1ea3 qua giao di\u1ec7n web, kh\u00f4ng c\u1ea7n g\u00f5 l\u1ec7nh m\u1ed7i l\u1ea7n tri\u1ec3n khai. Chi ph\u00ed ch\u1ec9 l\u00e0 ti\u1ec1n thu\u00ea VPS, thay v\u00ec tr\u1ea3 bill PaaS t\u0103ng d\u1ea7n m\u1ed7i th\u00e1ng.<\/p>\n<div style=\"background: #EFF6FF; border: 1px solid #2563EB; padding: 30px; margin-top: 25px; border-radius: 12px; text-align: center;\">\n<p style=\"font-family: 'Be Vietnam Pro', sans-serif; font-size: 20px; font-weight: bold; color: #1e3a8a; margin-top: 0;\">Self-host \u1ee9ng d\u1ee5ng ngay h\u00f4m nay v\u1edbi Coolify<\/p>\n<p style=\"font-size: 15px; margin-bottom: 20px; color: #4b5563;\">B\u1eaft \u0111\u1ea7u v\u1edbi VPS Ubuntu \u0111\u1ec3 c\u00e0i Coolify v\u00e0 deploy app \u0111\u1ea7u ti\u00ean. Khi quy m\u00f4 t\u0103ng, n\u00e2ng l\u00ean Cloud Server \u0111\u1ec3 scale nhanh \u2014 v\u00e0 gh\u00e9 <a href=\"https:\/\/interdata.vn\/canhme\/\" target=\"_blank\" rel=\"noopener\">Canh Me<\/a> \u0111\u1ec3 s\u0103n deal VPS, Cloud Server tr\u01b0\u1edbc khi ch\u1ed1t g\u00f3i.<\/p>\n<p><a style=\"background: #2563EB; color: #fff; padding: 12px 30px; text-decoration: none; font-weight: 600; border-radius: 6px; display: inline-block;\" href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener\">Ch\u1ecdn VPS c\u00e0i Coolify \u27f6<\/a><\/p>\n<\/div>\n<\/div>\n<p style=\"text-align: justify; font-size: 13px; font-style: italic; color: #6b7280; margin-top: 30px; border-top: 1px solid #E5E7EB; padding-top: 15px;\"><span style=\"font-size: 100%;\"><em>N\u1ed9i dung mang t\u00ednh tham kh\u1ea3o t\u1ea1i th\u1eddi \u0111i\u1ec3m th\u00e1ng 8\/2026. C\u00e1c b\u01b0\u1edbc c\u00e0i \u0111\u1eb7t, c\u1ea5u h\u00ecnh v\u00e0 t\u00ednh n\u0103ng Coolify c\u00f3 th\u1ec3 thay \u0111\u1ed5i theo phi\u00ean b\u1ea3n Coolify, Docker Engine, h\u1ec7 \u0111i\u1ec1u h\u00e0nh Ubuntu v\u00e0 m\u00f4i tr\u01b0\u1eddng th\u1ef1c t\u1ebf c\u1ee7a t\u1eebng VPS. N\u00ean ki\u1ec3m th\u1eed tr\u00ean staging, sao l\u01b0u d\u1eef li\u1ec7u tr\u01b0\u1edbc khi thao t\u00e1c tr\u00ean production, v\u00e0 tham kh\u1ea3o t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c t\u1ea1i <a href=\"https:\/\/coolify.io\/docs\" target=\"_blank\" rel=\"noopener nofollow\">coolify.io\/docs<\/a> \u0111\u1ec3 c\u1eadp nh\u1eadt th\u00f4ng tin m\u1edbi nh\u1ea5t.<\/em><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u00e1ch c\u00e0i Coolify tr\u00ean Ubuntu ch\u1ec9 m\u1ea5t 5 ph\u00fat v\u1edbi m\u1ed9t d\u00f2ng l\u1ec7nh duy nh\u1ea5t \u2014 nh\u01b0ng n\u1ebfu ch\u01b0a chu\u1ea9n b\u1ecb \u0111\u00fang VPS, b\u1ea1n s\u1ebd m\u1eafc ngay l\u1ed7i port conflict ho\u1eb7c Docker kh\u00f4ng t\u01b0\u01a1ng th\u00edch. B\u00e0i vi\u1ebft n\u00e0y h\u01b0\u1edbng d\u1eabn \u0111\u1ea7y \u0111\u1ee7 c\u1ea3 Quick Install l\u1eabn Manual Install, k\u00e8m c\u1ea3nh b\u00e1o l\u1ed7i th\u1ef1c t\u1ebf t\u1eeb<\/p>\n","protected":false},"author":2,"featured_media":43179,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[161],"tags":[],"class_list":["post-43129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-huong-dan-chung"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/43129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=43129"}],"version-history":[{"count":7,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/43129\/revisions"}],"predecessor-version":[{"id":43176,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/43129\/revisions\/43176"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/43179"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=43129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=43129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=43129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}