[{"data":1,"prerenderedAt":1090},["ShallowReactive",2],{"/blog/how-to-install-gitlab":3,"navigation-en-us":326,"banner-en-us":758,"footer-en-us":768,"blog-post-authors-en-us-Job van der Voort":1029,"blog-related-posts-en-us-how-to-install-gitlab":1045,"blog-share-wrapper-en-us":1070,"next-steps-en-us":1080},{"id":4,"title":5,"authors":6,"body":8,"category":292,"date":293,"description":294,"extension":295,"externalUrl":296,"faq":296,"featured":297,"heroImage":298,"meta":299,"navigation":316,"path":317,"seo":318,"slug":322,"stem":323,"tags":296,"template":324,"updatedDate":296,"__hash__":325},"blogPosts/en-us/blog/how-to-install-gitlab.md","How to install GitLab on your own domain",[7],"Job van der Voort",{"type":9,"value":10,"toc":286},"minimark",[11,15,18,34,37,42,45,66,76,79,82,89,92,98,101,107,111,114,117,120,132,136,139,161,164,167,186,193,196,224,227,242,246,249,279,282],[12,13,14],"p",{},"Want to get your first own GitLab instance running?\nWe're here to help!",[12,16,17],{},"This is what you need to do:",[19,20,21,25,28,31],"ol",{},[22,23,24],"li",{},"Get a VM",[22,26,27],{},"Point your domain to GitLab",[22,29,30],{},"Install GitLab",[22,32,33],{},"Use GitLab",[35,36],"br",{},[38,39,41],"h2",{"id":40},"_1-get-a-vm","1. Get a VM",[12,43,44],{},"It's a good time to want to have a VM.\nYou can get one cheap and easily from:",[46,47,48,51,54,57,60,63],"ul",{},[22,49,50],{},"DigitalOcean",[22,52,53],{},"Amazon AWS",[22,55,56],{},"Google Compute",[22,58,59],{},"Microsoft Azure",[22,61,62],{},"Dreamhost",[22,64,65],{},"Linode",[12,67,68,69,75],{},"If it's just for you, almost any size will do.\nWe ",[70,71,74],"a",{"href":72,"rel":73},"https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/requirements.md#cpu",[],"recommend","\nto get a VM with 2 cores and 2GB of memory.\nIt can handle you and all your friends.",[12,77,78],{},"DigitalOcean is particularly nice to use and even has a one-click install\nfor GitLab, which bypasses this tutorial completely!",[12,80,81],{},"If you have the option to set the domain name in the process,\nset it to the domain where you want your GitLab domain to be.",[12,83,84],{},[85,86],"img",{"alt":87,"src":88},"set hostname","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404879/site/Content%20Images/how_to/hostname.png",[12,90,91],{},"You can create a VM with any of the supported OS's,\nbut if you have no preference, use Ubuntu 14.04 x64.",[12,93,94],{},[85,95],{"alt":96,"src":97},"choose os","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404879/site/Content%20Images/how_to/choose_os.png",[12,99,100],{},"Create the VM and take note of the assigned IP for your domain.",[12,102,103],{},[85,104],{"alt":105,"src":106},"take not of ip","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404880/site/Content%20Images/how_to/ip.png",[38,108,110],{"id":109},"_2-point-your-domain-to-gitlab","2. Point your domain to GitLab",[12,112,113],{},"At the place you bought your domain name,\nyou want to point your GitLab domain to the IP address you noted.",[12,115,116],{},"Create an A-Type record set with the GitLab domain as name\nand the IP address as value.",[12,118,119],{},"That may sound arcane, but most domain-resellers make it quite easy.",[12,121,122,123,127,128,131],{},"In my case, I'm pointing ",[124,125,126],"code",{},"104.236.58.42"," (IP) to ",[124,129,130],{},"gitlab.jobvandervoort.com",".",[38,133,135],{"id":134},"_3-install-gitlab","3. Install GitLab",[12,137,138],{},"Go into your new VM by pointing your terminal to your new domain:",[140,141,146],"pre",{"className":142,"code":143,"language":144,"meta":145,"style":145},"language-shell shiki shiki-themes github-light","ssh root@gitlab.jobvandervoort.com\n","shell","",[124,147,148],{"__ignoreMap":145},[149,150,153,157],"span",{"class":151,"line":152},"line",1,[149,154,156],{"class":155},"s7eDp","ssh",[149,158,160],{"class":159},"sYBdl"," root@gitlab.jobvandervoort.com\n",[12,162,163],{},"If you're using DigitalOcean, you can also use their web console.",[12,165,166],{},"Next, install Postfix:",[140,168,170],{"className":142,"code":169,"language":144,"meta":145,"style":145},"sudo apt-get install postfix\n",[124,171,172],{"__ignoreMap":145},[149,173,174,177,180,183],{"class":151,"line":152},[149,175,176],{"class":155},"sudo",[149,178,179],{"class":159}," apt-get",[149,181,182],{"class":159}," install",[149,184,185],{"class":159}," postfix\n",[12,187,188,189,192],{},"Select ",[124,190,191],{},"Internet site",". Just keep hitting ENTER. The defaults will work.",[12,194,195],{},"Download and unpack GitLab! We're getting GitLab 7.8.0 Community Edition.\nIt comes together with GitLab CI 7.8.0 and is full of awesomeness.",[140,197,199],{"className":142,"code":198,"language":144,"meta":145,"style":145},"wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.0-omnibus-1_amd64.deb\nsudo dpkg -i gitlab_7.8.0-omnibus-1_amd64.deb\n",[124,200,201,209],{"__ignoreMap":145},[149,202,203,206],{"class":151,"line":152},[149,204,205],{"class":155},"wget",[149,207,208],{"class":159}," https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.0-omnibus-1_amd64.deb\n",[149,210,212,214,217,221],{"class":151,"line":211},2,[149,213,176],{"class":155},[149,215,216],{"class":159}," dpkg",[149,218,220],{"class":219},"sYu0t"," -i",[149,222,223],{"class":159}," gitlab_7.8.0-omnibus-1_amd64.deb\n",[12,225,226],{},"Configure and start GitLab:",[140,228,230],{"className":142,"code":229,"language":144,"meta":145,"style":145},"sudo gitlab-ctl reconfigure\n",[124,231,232],{"__ignoreMap":145},[149,233,234,236,239],{"class":151,"line":152},[149,235,176],{"class":155},[149,237,238],{"class":159}," gitlab-ctl",[149,240,241],{"class":159}," reconfigure\n",[38,243,245],{"id":244},"_4-use-gitlab","4. Use GitLab",[12,247,248],{},"Go to your domain and sign in! Use these credentials for the first time:",[140,250,254],{"className":251,"code":252,"language":253,"meta":145,"style":145},"language-yaml shiki shiki-themes github-light","Username: root\nPassword: 5iveL!fe\n","yaml",[124,255,256,269],{"__ignoreMap":145},[149,257,258,262,266],{"class":151,"line":152},[149,259,261],{"class":260},"shJU0","Username",[149,263,265],{"class":264},"sgsFI",": ",[149,267,268],{"class":159},"root\n",[149,270,271,274,276],{"class":151,"line":211},[149,272,273],{"class":260},"Password",[149,275,265],{"class":264},[149,277,278],{"class":159},"5iveL!fe\n",[12,280,281],{},"Have fun!",[283,284,285],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}",{"title":145,"searchDepth":211,"depth":211,"links":287},[288,289,290,291],{"id":40,"depth":211,"text":41},{"id":109,"depth":211,"text":110},{"id":134,"depth":211,"text":135},{"id":244,"depth":211,"text":245},"engineering","2015-02-24","Want to get your first own GitLab instance running? Use these easy to follow instructions and you will be active in no time!","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684373/Blog/Hero%20Images/installing.jpg",{"excerpt":300},{"type":9,"value":301},[302,304,306],[12,303,14],{},[12,305,17],{},[19,307,308,310,312,314],{},[22,309,24],{},[22,311,27],{},[22,313,30],{},[22,315,33],{},true,"/en-us/blog/how-to-install-gitlab",{"title":5,"description":294,"ogTitle":5,"ogDescription":294,"noIndex":297,"ogImage":298,"ogUrl":319,"ogSiteName":320,"ogType":321,"canonicalUrls":319},"https://about.gitlab.com/blog/how-to-install-gitlab","https://about.gitlab.com","article","how-to-install-gitlab","en-us/blog/how-to-install-gitlab","BlogPost","0jjqNx8XAo0kTaY9WDJtCmwYNg61EzrimjL_B0vrKLE",{"logo":327,"freeTrial":332,"sales":337,"login":342,"items":347,"search":678,"minimal":709,"duo":728,"switchNav":737,"pricingDeployment":748},{"config":328},{"href":329,"dataGaName":330,"dataGaLocation":331},"/","gitlab logo","header",{"text":333,"config":334},"Get free trial",{"href":335,"dataGaName":336,"dataGaLocation":331},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":338,"config":339},"Request a demo",{"href":340,"dataGaName":341,"dataGaLocation":331},"/request-a-demo/","sales",{"text":343,"config":344},"Sign in",{"href":345,"dataGaName":346,"dataGaLocation":331},"https://gitlab.com/users/sign_in/","sign in",[348,434,522,527,602,656],{"text":349,"left":316,"config":350,"menu":352},"Platform",{"dataNavLevelOne":351},"platform",{"type":353,"link":354,"columns":358,"feature":423},"lists",{"text":355,"config":356},"Explore the Platform",{"href":357,"dataGaName":351,"dataGaLocation":331},"/platform/",[359,382,405],{"title":360,"items":361},"Execution & Workflows",[362,367,372,377],{"text":363,"config":364},"CI/CD",{"href":365,"dataGaLocation":331,"dataGaName":366},"/solutions/continuous-integration/","ci/cd",{"text":368,"config":369},"Source Code Management",{"href":370,"dataGaLocation":331,"dataGaName":371},"/solutions/source-code-management/","source code management",{"text":373,"config":374},"Agile Delivery",{"href":375,"dataGaLocation":331,"dataGaName":376},"/solutions/agile-delivery/","agile delivery",{"text":378,"config":379},"Artifact Management",{"href":380,"dataGaLocation":331,"dataGaName":381},"/artifact-central/","artifact management",{"title":383,"items":384},"Security & Governance",[385,390,395,400],{"text":386,"config":387},"Application Security Testing",{"href":388,"dataGaLocation":331,"dataGaName":389},"/solutions/application-security-testing/","application security testing",{"text":391,"config":392},"Governance & Compliance",{"href":393,"dataGaLocation":331,"dataGaName":394},"/solutions/software-compliance/","governance and compliance",{"text":396,"config":397},"Secrets Management",{"href":398,"dataGaLocation":331,"dataGaName":399},"/gitlab-secrets-manager/","secrets management",{"text":401,"config":402},"Supply Chain Security",{"href":403,"dataGaLocation":331,"dataGaName":404},"/solutions/supply-chain/","supply chain security",{"title":406,"items":407},"Context & AI",[408,413,418],{"text":409,"config":410},"Agentic Orchestration",{"href":411,"dataGaLocation":331,"dataGaName":412},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":414,"config":415},"Context Graph",{"href":416,"dataGaLocation":331,"dataGaName":417},"/gitlab-orbit/","context graph",{"text":419,"config":420},"Visibility & Measurement",{"href":421,"dataGaLocation":331,"dataGaName":422},"/solutions/visibility-measurement/","visibility and measurement",{"config":424,"title":427,"text":428,"link":429},{"background":425,"textColor":426},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":430,"config":431},"Learn more",{"href":432,"dataGaName":433,"dataGaLocation":331},"/why-gitlab/","why gitlab",{"text":435,"left":316,"config":436,"menu":438},"Solutions",{"dataNavLevelOne":437},"solutions",{"type":353,"link":439,"columns":443,"feature":513},{"text":440,"config":441},"View all Solutions",{"href":442,"dataGaName":437,"dataGaLocation":331},"/solutions/",[444,462,480],{"title":445,"items":446},"Outcomes",[447,452,457],{"text":448,"config":449},"DevOps Modernization",{"href":450,"dataGaLocation":331,"dataGaName":451},"/assessments/devops-modernization-assessment/","devops modernization",{"text":453,"config":454},"Security Modernization",{"href":455,"dataGaLocation":331,"dataGaName":456},"/assessments/security-modernization-assessment/","security modernization",{"text":458,"config":459},"AI Modernization",{"href":460,"dataGaLocation":331,"dataGaName":461},"/assessments/ai-modernization-assessment/","ai modernization",{"title":463,"items":464},"By size",[465,470,475],{"text":466,"config":467},"Enterprise",{"href":468,"dataGaLocation":331,"dataGaName":469},"/enterprise/","enterprise",{"text":471,"config":472},"Small Business",{"href":473,"dataGaLocation":331,"dataGaName":474},"/small-business/","small business",{"text":476,"config":477},"Startups",{"href":478,"dataGaLocation":331,"dataGaName":479},"/solutions/startups/","startups",{"title":481,"items":482},"Industries",[483,488,493,498,503,508],{"text":484,"config":485},"Financial Services",{"href":486,"dataGaLocation":331,"dataGaName":487},"/solutions/finance/","financial services",{"text":489,"config":490},"Public Sector",{"href":491,"dataGaLocation":331,"dataGaName":492},"/solutions/public-sector/","public sector",{"text":494,"config":495},"Telecommunications",{"href":496,"dataGaLocation":331,"dataGaName":497},"/solutions/telecommunications/","telecommunications",{"text":499,"config":500},"Automotive",{"href":501,"dataGaLocation":331,"dataGaName":502},"/solutions/automotive/","automotive",{"text":504,"config":505},"Education",{"href":506,"dataGaLocation":331,"dataGaName":507},"/solutions/education/","education",{"text":509,"config":510},"Aerospace",{"href":511,"dataGaLocation":331,"dataGaName":512},"/solutions/aerospace/","aerospace",{"config":514,"title":515,"text":516,"link":517},{"background":425,"textColor":426},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":518,"config":519},"Explore the standard",{"href":520,"dataGaName":521,"dataGaLocation":331},"/gitlab-security-standard/","gitlab security standard",{"text":523,"config":524},"Pricing",{"href":525,"dataGaName":526,"dataGaLocation":331,"dataNavLevelOne":526},"/pricing/","pricing",{"text":528,"config":529,"menu":531},"Resources",{"dataNavLevelOne":530},"resources",{"type":353,"link":532,"columns":536,"feature":593},{"text":533,"config":534},"View all resources",{"href":535,"dataGaName":530,"dataGaLocation":331},"/resources/",[537,565],{"title":538,"items":539},"Discover",[540,545,550,555,560],{"text":541,"config":542},"Docs",{"href":543,"dataGaName":544,"dataGaLocation":331},"https://docs.gitlab.com/","docs",{"text":546,"config":547},"University",{"href":548,"dataGaName":549,"dataGaLocation":331},"https://university.gitlab.com/","university",{"text":551,"config":552},"Demo Series",{"href":553,"dataGaName":554,"dataGaLocation":331},"/gitlab-technical-demo-series/","demo series",{"text":556,"config":557},"Demo Hub",{"href":558,"dataGaName":559,"dataGaLocation":331},"/demo-hub/","demo hub",{"text":561,"config":562},"Services",{"href":563,"dataGaName":564,"dataGaLocation":331},"/services/","services",{"title":566,"items":567},"Connect",[568,573,578,583,588],{"text":569,"config":570},"Blog",{"href":571,"dataGaName":572,"dataGaLocation":331},"/blog/","blog",{"text":574,"config":575},"Community",{"href":576,"dataGaName":577,"dataGaLocation":331},"/community/","community",{"text":579,"config":580},"Customers",{"href":581,"dataGaName":582,"dataGaLocation":331},"/customers/","customers",{"text":584,"config":585},"Partners",{"href":586,"dataGaName":587,"dataGaLocation":331},"/partners/","partners",{"text":589,"config":590},"Events",{"href":591,"dataGaName":592,"dataGaLocation":331},"/events/","events",{"config":594,"title":595,"text":596,"link":597},{"background":425,"textColor":426},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":598,"config":599},"Read the latest",{"href":600,"dataGaName":601,"dataGaLocation":331},"/whats-new/","whats new",{"text":603,"config":604,"menu":606},"Company",{"dataNavLevelOne":605},"company",{"type":353,"columns":607},[608],{"items":609},[610,615,621,626,631,636,641,646,651],{"text":611,"config":612},"About",{"href":613,"dataGaName":614,"dataGaLocation":331},"/company/","about",{"text":616,"config":617,"footerGa":620},"Jobs",{"href":618,"dataGaName":619,"dataGaLocation":331},"/jobs/","jobs",{"dataGaName":619},{"text":622,"config":623},"Press",{"href":624,"dataGaName":625,"dataGaLocation":331},"/press/","press",{"text":627,"config":628},"Handbook",{"href":629,"dataGaName":630,"dataGaLocation":331},"https://handbook.gitlab.com/","handbook",{"text":632,"config":633},"Leadership",{"href":634,"dataGaName":635,"dataGaLocation":331},"/company/team/e-group/","leadership",{"text":637,"config":638},"Investor relations",{"href":639,"dataGaName":640,"dataGaLocation":331},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":642,"config":643},"Trust Center",{"href":644,"dataGaName":645,"dataGaLocation":331},"/security/","trust center",{"text":647,"config":648},"AI Transparency Center",{"href":649,"dataGaName":650,"dataGaLocation":331},"/ai-transparency-center/","ai transparency center",{"text":652,"config":653},"Newsletter",{"href":654,"dataGaName":655,"dataGaLocation":331},"/company/contact/#contact-forms","newsletter",{"text":657,"config":658,"menu":659},"Contact us",{"dataNavLevelOne":605},{"type":353,"columns":660},[661],{"items":662},[663,668,673],{"text":664,"config":665},"Talk to sales",{"href":666,"dataGaName":667,"dataGaLocation":331},"/sales/","talk to sales",{"text":669,"config":670},"Support portal",{"href":671,"dataGaName":672,"dataGaLocation":331},"https://support.gitlab.com/hc/en-us","support portal",{"text":674,"config":675},"Customer portal",{"href":676,"dataGaName":677,"dataGaLocation":331},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":679,"login":680,"suggestions":687},"Close",{"text":681,"link":682},"To search repositories and projects, login to",{"text":683,"config":684},"gitlab.com",{"href":345,"dataGaName":685,"dataGaLocation":686},"search login","search",{"text":688,"default":689},"Suggestions",[690,693,696,698,702,706],{"text":691,"config":692},"GitLab Duo Agent Platform",{"href":411,"dataGaName":691,"dataGaLocation":686},{"text":694,"config":695},"Code Suggestions (AI)",{"href":411,"dataGaName":694,"dataGaLocation":686},{"text":363,"config":697},{"href":365,"dataGaName":363,"dataGaLocation":686},{"text":699,"config":700},"GitLab on AWS",{"href":701,"dataGaName":699,"dataGaLocation":686},"/partners/technology-partners/aws/",{"text":703,"config":704},"GitLab on Google Cloud",{"href":705,"dataGaName":703,"dataGaLocation":686},"/partners/technology-partners/google-cloud-platform/",{"text":707,"config":708},"Why GitLab?",{"href":432,"dataGaName":707,"dataGaLocation":686},{"freeTrial":710,"mobileIcon":715,"desktopIcon":720,"secondaryButton":723},{"text":711,"config":712},"Start free trial",{"href":713,"dataGaName":336,"dataGaLocation":714},"https://gitlab.com/-/trials/new/","nav",{"altText":716,"config":717},"Gitlab Icon",{"src":718,"dataGaName":719,"dataGaLocation":714},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":716,"config":721},{"src":722,"dataGaName":719,"dataGaLocation":714},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":724,"config":725},"Get Started",{"href":726,"dataGaName":727,"dataGaLocation":714},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":729,"mobileIcon":733,"desktopIcon":735},{"text":730,"config":731},"Learn more about GitLab Duo",{"href":411,"dataGaName":732,"dataGaLocation":714},"gitlab duo",{"altText":716,"config":734},{"src":718,"dataGaName":719,"dataGaLocation":714},{"altText":716,"config":736},{"src":722,"dataGaName":719,"dataGaLocation":714},{"button":738,"mobileIcon":743,"desktopIcon":745},{"text":739,"config":740},"/switch",{"href":741,"dataGaName":742,"dataGaLocation":714},"#contact","switch",{"altText":716,"config":744},{"src":718,"dataGaName":719,"dataGaLocation":714},{"altText":716,"config":746},{"src":747,"dataGaName":719,"dataGaLocation":714},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":749,"mobileIcon":754,"desktopIcon":756},{"text":750,"config":751},"Back to pricing",{"href":525,"dataGaName":752,"dataGaLocation":714,"icon":753},"back to pricing","GoBack",{"altText":716,"config":755},{"src":718,"dataGaName":719,"dataGaLocation":714},{"altText":716,"config":757},{"src":722,"dataGaName":719,"dataGaLocation":714},{"title":759,"button":760,"config":766},"Ship at agent speed. Prove every step. Transcend is here.",{"text":761,"config":762},"Watch now",{"href":763,"dataGaName":764,"dataGaLocation":765},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":767,"disabled":297},"release",{"data":769},{"text":770,"source":771,"edit":777,"contribute":782,"config":787,"items":792,"minimal":1018},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":772,"config":773},"View page source",{"href":774,"dataGaName":775,"dataGaLocation":776},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":778,"config":779},"Edit this page",{"href":780,"dataGaName":781,"dataGaLocation":776},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":783,"config":784},"Please contribute",{"href":785,"dataGaName":786,"dataGaLocation":776},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":788,"facebook":789,"youtube":790,"linkedin":791},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[793,840,898,945,986],{"title":523,"links":794,"subMenu":809},[795,799,804],{"text":796,"config":797},"View plans",{"href":525,"dataGaName":798,"dataGaLocation":776},"view plans",{"text":800,"config":801},"Why Premium?",{"href":802,"dataGaName":803,"dataGaLocation":776},"/pricing/premium/","why premium",{"text":805,"config":806},"Why Ultimate?",{"href":807,"dataGaName":808,"dataGaLocation":776},"/pricing/ultimate/","why ultimate",[810],{"title":811,"links":812},"Contact Us",[813,816,818,820,825,830,835],{"text":814,"config":815},"Contact sales",{"href":666,"dataGaName":341,"dataGaLocation":776},{"text":669,"config":817},{"href":671,"dataGaName":672,"dataGaLocation":776},{"text":674,"config":819},{"href":676,"dataGaName":677,"dataGaLocation":776},{"text":821,"config":822},"Status",{"href":823,"dataGaName":824,"dataGaLocation":776},"https://status.gitlab.com/","status",{"text":826,"config":827},"Terms of use",{"href":828,"dataGaName":829,"dataGaLocation":776},"/terms/","terms of use",{"text":831,"config":832},"Privacy statement",{"href":833,"dataGaName":834,"dataGaLocation":776},"/privacy/","privacy statement",{"text":836,"config":837},"Cookie preferences",{"dataGaName":838,"dataGaLocation":776,"id":839,"isOneTrustButton":316},"cookie preferences","ot-sdk-btn",{"title":349,"links":841,"subMenu":855},[842,845,847,849,851,853],{"text":843,"config":844},"Explore the platform",{"href":357,"dataGaName":351,"dataGaLocation":776},{"text":409,"config":846},{"href":411,"dataGaName":412,"dataGaLocation":776},{"text":363,"config":848},{"href":365,"dataGaName":366,"dataGaLocation":776},{"text":414,"config":850},{"href":416,"dataGaName":417,"dataGaLocation":776},{"text":396,"config":852},{"href":398,"dataGaName":399,"dataGaLocation":776},{"text":427,"config":854},{"href":432,"dataGaName":433,"dataGaLocation":776},[856],{"title":857,"links":858},"Topics",[859,863,868,873,878,883,888,893],{"text":363,"config":860},{"href":861,"dataGaName":862,"dataGaLocation":776},"/topics/ci-cd/","cicd",{"text":864,"config":865},"GitOps",{"href":866,"dataGaName":867,"dataGaLocation":776},"/topics/gitops/","gitops",{"text":869,"config":870},"DevOps",{"href":871,"dataGaName":872,"dataGaLocation":776},"/topics/devops/","devops",{"text":874,"config":875},"Version Control",{"href":876,"dataGaName":877,"dataGaLocation":776},"/topics/version-control/","version control",{"text":879,"config":880},"DevSecOps",{"href":881,"dataGaName":882,"dataGaLocation":776},"/topics/devsecops/","devsecops",{"text":884,"config":885},"Cloud Native",{"href":886,"dataGaName":887,"dataGaLocation":776},"/topics/cloud-native/","cloud native",{"text":889,"config":890},"AI for Coding",{"href":891,"dataGaName":892,"dataGaLocation":776},"/topics/devops/ai-for-coding/","ai for coding",{"text":894,"config":895},"Agentic AI",{"href":896,"dataGaName":897,"dataGaLocation":776},"/topics/agentic-ai/","agentic ai",{"title":435,"links":899},[900,903,906,909,912,915,917,919,921,923,925,928,930,933,937,941],{"text":901,"config":902},"DevOps modernization",{"href":450,"dataGaName":451,"dataGaLocation":776},{"text":904,"config":905},"Security modernization",{"href":455,"dataGaName":456,"dataGaLocation":776},{"text":907,"config":908},"AI modernization",{"href":460,"dataGaName":461,"dataGaLocation":776},{"text":910,"config":911},"Financial services",{"href":486,"dataGaName":487,"dataGaLocation":776},{"text":913,"config":914},"Public sector",{"href":491,"dataGaName":492,"dataGaLocation":776},{"text":494,"config":916},{"href":496,"dataGaName":497,"dataGaLocation":776},{"text":499,"config":918},{"href":501,"dataGaName":502,"dataGaLocation":776},{"text":504,"config":920},{"href":506,"dataGaName":507,"dataGaLocation":776},{"text":509,"config":922},{"href":511,"dataGaName":512,"dataGaLocation":776},{"text":466,"config":924},{"href":468,"dataGaName":469,"dataGaLocation":776},{"text":926,"config":927},"Small business",{"href":473,"dataGaName":474,"dataGaLocation":776},{"text":476,"config":929},{"href":478,"dataGaName":479,"dataGaLocation":776},{"text":864,"config":931},{"href":932,"dataGaName":867,"dataGaLocation":776},"/solutions/gitops/",{"text":934,"config":935},"Software composition analysis",{"href":403,"dataGaName":936,"dataGaLocation":776},"software composition analysis",{"text":938,"config":939},"Value stream management",{"href":421,"dataGaName":940,"dataGaLocation":776},"value stream management",{"text":942,"config":943},"All solutions",{"href":442,"dataGaName":944,"dataGaLocation":776},"all solutions",{"title":528,"links":946},[947,952,957,959,961,963,965,967,969,971,973,975,977,979,982],{"text":948,"config":949},"Install",{"href":950,"dataGaName":951,"dataGaLocation":776},"/install/","install",{"text":953,"config":954},"Quick start guides",{"href":955,"dataGaName":956,"dataGaLocation":776},"/get-started/","quick setup checklists",{"text":541,"config":958},{"href":543,"dataGaName":544,"dataGaLocation":776},{"text":546,"config":960},{"href":548,"dataGaName":549,"dataGaLocation":776},{"text":551,"config":962},{"href":553,"dataGaName":554,"dataGaLocation":776},{"text":556,"config":964},{"href":558,"dataGaName":559,"dataGaLocation":776},{"text":561,"config":966},{"href":563,"dataGaName":564,"dataGaLocation":776},{"text":569,"config":968},{"href":571,"dataGaName":572,"dataGaLocation":776},{"text":574,"config":970},{"href":576,"dataGaName":577,"dataGaLocation":776},{"text":579,"config":972},{"href":581,"dataGaName":582,"dataGaLocation":776},{"text":584,"config":974},{"href":586,"dataGaName":587,"dataGaLocation":776},{"text":589,"config":976},{"href":591,"dataGaName":592,"dataGaLocation":776},{"text":652,"config":978},{"href":654,"dataGaName":655,"dataGaLocation":776},{"text":980,"config":981},"What's new",{"href":600,"dataGaName":601,"dataGaLocation":776},{"text":983,"config":984},"All resources",{"href":535,"dataGaName":985,"dataGaLocation":776},"all resources",{"title":603,"links":987},[988,990,992,994,996,998,1000,1002,1004,1008,1013],{"text":611,"config":989},{"href":613,"dataGaName":605,"dataGaLocation":776},{"text":616,"config":991},{"href":618,"dataGaName":619,"dataGaLocation":776},{"text":622,"config":993},{"href":624,"dataGaName":625,"dataGaLocation":776},{"text":627,"config":995},{"href":629,"dataGaName":630,"dataGaLocation":776},{"text":632,"config":997},{"href":634,"dataGaName":635,"dataGaLocation":776},{"text":637,"config":999},{"href":639,"dataGaName":640,"dataGaLocation":776},{"text":642,"config":1001},{"href":644,"dataGaName":645,"dataGaLocation":776},{"text":647,"config":1003},{"href":649,"dataGaName":650,"dataGaLocation":776},{"text":1005,"config":1006},"Sustainability",{"href":1007,"dataGaName":1005,"dataGaLocation":776},"/sustainability/",{"text":1009,"config":1010},"Diversity, inclusion and belonging (DIB)",{"href":1011,"dataGaName":1012,"dataGaLocation":776},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1014,"config":1015},"Modern Slavery Transparency Statement",{"href":1016,"dataGaName":1017,"dataGaLocation":776},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1019},[1020,1023,1026],{"text":1021,"config":1022},"Terms",{"href":828,"dataGaName":829,"dataGaLocation":776},{"text":1024,"config":1025},"Cookies",{"dataGaName":838,"dataGaLocation":776,"id":839,"isOneTrustButton":316},{"text":1027,"config":1028},"Privacy",{"href":833,"dataGaName":834,"dataGaLocation":776},[1030],{"id":1031,"title":1032,"body":296,"config":1033,"content":1035,"description":296,"extension":1039,"meta":1040,"navigation":316,"path":1041,"seo":1042,"stem":1043,"__hash__":1044},"blogAuthors/en-us/blog/authors/job-van-der-voort.yml","Job Van Der Voort",{"template":1034},"BlogAuthor",{"name":7,"config":1036},{"headshot":1037,"ctfId":1038},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Job-van-der-Voort","yml",{},"/en-us/blog/authors/job-van-der-voort",{},"en-us/blog/authors/job-van-der-voort","w8TOn_hGFgQQOv35VnObjxoMM-hviRbwtijFETooJCM",[1046,1054,1062],{"title":1047,"description":1048,"heroImage":1049,"category":292,"date":1050,"authors":1051,"slug":1053,"externalUrl":296},"Two front doors: Module-level access in a Django GRC app","A technical deep-dive on restructuring a Django internal tool to support two distinct GitLab teams: Security Compliance and Internal Audit.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097663/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097663612.png","2026-10-05",[1052],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":1055,"description":1056,"heroImage":1057,"category":292,"date":1058,"authors":1059,"slug":1061,"externalUrl":296},"How GitLab reduced code-per-agentic-flow ratio by 45%","Learn how Flow Registry, a component-based framework that compiles YAML configurations into fully functional LangGraph flows, helped improve scalability and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-09-22",[1060],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":1063,"description":1064,"heroImage":1065,"category":292,"date":1066,"authors":1067,"slug":1069,"externalUrl":296},"Co-Create: Building GitLab with our users","How GitLab users collaborated with us to build practical product improvements in the first half of 2026.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-09-10",[1068],"Isa Huerga","co-create-h1-2026",{"header":1071,"text":1072,"button":1076,"disclaimer":1079},"Start your free\n\n30-day GitLab trial\n",[1073,1074,1075],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":333,"config":1077},{"href":1078,"dataGaName":336,"dataGaLocation":572},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":1081,"blurb":1082,"button":1083,"secondaryButton":1088},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1084,"config":1085},"Get your free trial",{"href":1086,"dataGaName":336,"dataGaLocation":1087},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":814,"config":1089},{"href":666,"dataGaName":341,"dataGaLocation":1087},1792018367540]