1"use strict";(self.webpackChunkphpvms_docs=self.webpackChunkphpvms_docs||[]).push([[571],{66081(e,s,t){t.r(s),t.d(s,{default:()=>p});t(96540);var l=t(43032),a=t(21141),i=t(14783),n=t(2752),c=t(74848),o=[{icon:"\ud83c\udfe2",title:"For operators",desc:"Run a virtual airline. Install phpvms, configure your fleet, set up flights, and onboard pilots.",links:[{label:"Installation",to:"/8.x/installation"},{label:"Configuration",to:"/8.x/config/basics"},{label:"Theming",to:"/8.x/customize/theming"}]},{icon:"\u2708\ufe0f",title:"For pilots & ACARS",desc:"Track flights with vmsACARS. Install the client, connect to your VA, and file PIREPs automatically.",links:[{label:"Install the client",to:"/8.x/acars/client/install"},{label:"Configure simulators",to:"/8.x/acars/client/configuration"},{label:"Flying with ACARS",to:"/8.x/acars/client/flying"}]},{icon:"\ud83d\udee0\ufe0f",title:"For developers",desc:"Build addons, themes, and ACARS plugins. Extend phpvms with new routes, events, and integrations.",links:[{label:"Addon overview",to:"/8.x/developers/addons/overview"},{label:"ACARS plugin tutorial",to:"/8.x/acars/plugins/tutorial"},{label:"REST API",to:"/8.x/api/overview"}]}],r=[{icon:"\u2699\ufe0f",title:"Configuration",desc:"Email, backups, OAuth, advanced",to:"/8.x/config/basics"},{icon:"\ud83c\udfa8",title:"Theming",desc:"Layouts, theming, maps",to:"/8.x/customize/theming"},{icon:"\ud83d\udcda",title:"Concepts",desc:"Basics, glossary, deeper dive",to:"/8.x/guides/basics"},{icon:"\ud83d\udd0c",title:"Addons",desc:"Routes, events, database",to:"/8.x/developers/addons/overview"},{icon:"\ud83d\udef0\ufe0f",title:"REST API",desc:"Endpoints and auth",to:"/8.x/api/overview"},{icon:"\ud83d\udc33",title:"Docker",desc:"Containerised deployment",to:"/8.x/installation/docker"},{icon:"\ud83d\udd10",title:"OAuth",desc:"Discord, IVAO, VATSIM",to:"/8.x/config/oauth/discord"},{icon:"\ud83c\udfc6",title:"Awards",desc:"Build custom awards",to:"/8.x/developers/awards"}],d=[{q:"How do I install phpvms?",to:"/8.x/installation"},{q:"How do I update an existing install?",to:"/8.x/installation/updating"},{q:"How do I set up email?",to:"/8.x/config/email"},{q:"How do I install the ACARS client?",to:"/8.x/acars/client/install"},{q:"How do I build a custom theme?",to:"/8.x/customize/theming"},{q:"How do I write an addon?",to:"/8.x/developers/addons/overview"}];function p(){return(0,c.jsxs)(l.A,{title:"phpvms \u2014 run, fly, and build virtual airlines",description:"Documentation for phpvms, the open-source virtual airline platform",children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("meta",{name:"robots",content:"noindex,nofollow"})}),(0,c.jsxs)("main",{className:n.A.page,children:[(0,c.jsxs)("header",{className:n.A.hero,children:[(0,c.jsx)("span",{className:n.A.eyebrow,children:"v8.x \xb7 Documentation"}),(0,c.jsx)("h1",{className:n.A.heroTitle,children:"Run, fly, and build virtual airlines."}),(0,c.jsx)("p",{className:n.A.heroSubtitle,children:"phpvms is the open-source platform for virtual airlines. Install it on your own server, fly with vmsACARS, and extend it with addons. These docs cover everything from your first install to shipping a plugin."}),(0,c.jsxs)("div",{className:n.A.heroActions,children:[(0,c.jsx)("a",{href:"https://demo.phpvms.net",className:n.A.btnPrimary,target:"_blank",rel:"noreferrer",children:"View the demo \u2192"}),(0,c.jsx)(i.A,{to:"/8.x/installation",className:n.A.btnSecondary,children:"Install phpvms"})]})]}),(0,c.jsxs)("section",{className:n.A.section,children:[(0,c.jsxs)("header",{className:n.A.sectionHeader,children:[(0,c.jsx)("h2",{className:n.A.sectionTitle,children:"Find your path"}),(0,c.jsx)("p",{className:n.A.sectionLead,children:"The docs are split into three audiences. Pick the one that matches what you're trying to do."})]}),(0,c.jsx)("div",{className:n.A.audienceGrid,children:o.map(function(e){return(0,c.jsxs)("div",{className:n.A.card+" "+n.A.audienceCard,children:[(0,c.jsx)("span",{className:n.A.cardIcon,"aria-hidden":!0,children:e.icon}),(0,c.jsx)("h3",{className:n.A.cardTitle,children:e.title}),(0,c.jsx)("p",{className:n.A.cardDesc,children:e.desc}),(0,c.jsx)("ul",{className:n.A.cardLinks,children:e.links.map(function(e){return(0,c.jsx)("li",{children:(0,c.jsxs)(i.A,{to:e.to,children:[e.label," \u2192"]})},e.to)})})]},e.title)})})]}),(0,c.jsxs)("section",{className:n.A.section,children:[(0,c.jsxs)("header",{className:n.A.sectionHeader,children:[(0,c.jsx)("h2",{className:n.A.sectionTitle,children:"Browse by area"}),(0,c.jsx)("p",{className:n.A.sectionLead,children:"Jump directly into a topic."})]}),(0,c.jsx)("div",{className:n.A.browseGrid,children:r.map(function(e){return(0,c.jsxs)(i.A,{to:e.to,className:n.A.card+" "+n.A.browseCard,children:[(0,c.jsx)("span",{className:n.A.cardIcon,"aria-hidden":!0,
1children:e.icon}),(0,c.jsx)("h3",{className:n.A.cardTitle,children:e.title}),(0,c.jsx)("p",{className:n.A.cardDesc,children:e.desc})]},e.to)})})]}),(0,c.jsxs)("section",{className:n.A.section,children:[(0,c.jsx)("header",{className:n.A.sectionHeader,children:(0,c.jsx)("h2",{className:n.A.sectionTitle,children:"Common questions"})}),(0,c.jsx)("ul",{className:n.A.questions,children:d.map(function(e){return(0,c.jsx)("li",{children:(0,c.jsx)(i.A,{to:e.to,children:e.q})},e.to)})})]}),(0,c.jsx)("section",{className:n.A.section,children:(0,c.jsxs)("div",{className:n.A.helpBlock,children:[(0,c.jsxs)("div",{children:[(0,c.jsx)("h2",{className:n.A.helpTitle,children:"Need help?"}),(0,c.jsx)("p",{className:n.A.helpDesc,children:"Stuck on something or want to share what you've built? The community is active on the forum and GitHub."})]}),(0,c.jsxs)("div",{className:n.A.helpLinks,children:[(0,c.jsx)("a",{href:"https://forum.phpvms.net",className:n.A.btnSecondary,target:"_blank",rel:"noreferrer",children:"Forum"}),(0,c.jsx)("a",{href:"https://github.com/nabeelio/phpvms",className:n.A.btnSecondary,target:"_blank",rel:"noreferrer",children:"GitHub"}),(0,c.jsx)(i.A,{to:"/help",className:n.A.btnSecondary,children:"Help docs"})]})]})})]})]})}},2752(e,s,t){t.d(s,{A:()=>l});const l={page:"page_Wq_x lp-page",hero:"hero_l1Jc lp-hero",heroCompact:"heroCompact_oWnr lp-hero--compact",eyebrow:"eyebrow_tUHI lp-eyebrow",heroTitle:"heroTitle_oYMR lp-hero-title",heroSubtitle:"heroSubtitle_jGPH lp-hero-subtitle",heroActions:"heroActions_rucN lp-hero-actions",btnPrimary:"btnPrimary_h6ji lp-btn-primary",btnSecondary:"btnSecondary_xgag lp-btn-secondary",section:"section_Mjsw lp-section",sectionHeader:"sectionHeader_Lgsb lp-section-header",sectionTitle:"sectionTitle_EzbD lp-section-title",sectionLead:"sectionLead_dKce lp-section-lead",card:"card_oM1r lp-card",cardIcon:"cardIcon_ZWf5 lp-card-icon",cardTitle:"cardTitle_Vi96 lp-card-title",cardDesc:"cardDesc_BE13 lp-card-desc",cardLinks:"cardLinks_kuuc lp-card-links",audienceGrid:"audienceGrid_OrrI lp-audience-grid",audienceCard:"audienceCard_RCoZ lp-audience-card",browseGrid:"browseGrid_QjCt lp-browse-grid",browseCard:"browseCard_wN2k lp-browse-card",flatGrid:"flatGrid_Tbr4 lp-flat-grid",steps:"steps_OQOj lp-steps",step:"step_GjJA lp-step",stepNum:"stepNum_q6MM lp-step-num",stepTitle:"stepTitle_XdBK lp-step-title",stepBody:"stepBody_DxrV lp-step-body",codeBlock:"codeBlock_iLmD lp-code-block",useCasePanel:"useCasePanel_WlRp lp-usecase-panel",useCaseTitle:"useCaseTitle_NK6S lp-usecase-title",useCaseDesc:"useCaseDesc_hSSV lp-usecase-desc",useCaseLinks:"useCaseLinks_XfvO lp-usecase-links",questions:"questions_uQSJ lp-questions",featuredStrip:"featuredStrip_xslM lp-featured-strip",featuredItem:"featuredItem_Vvz6 lp-featured-item",whatsNextRow:"whatsNextRow_XveM lp-whats-next",helpBlock:"helpBlock_PfoF lp-help-block",helpTitle:"helpTitle_qrs1 lp-help-title",helpDesc:"helpDesc_XFs9 lp-help-desc",helpLinks:"helpLinks_ORWp lp-help-links",sampleIndexList:"sampleIndexList_zPgi lp-sketch-list",sampleIndexCard:"sampleIndexCard_ASZF lp-sketch-card",sampleIndexNum:"sampleIndexNum_CaFH lp-sketch-num",sampleIndexTitle:"sampleIndexTitle_oljd lp-sketch-title",sampleIndexDesc:"sampleIndexDesc_p_hR lp-sketch-desc",sampleIndexBadge:"sampleIndexBadge_yceW lp-sketch-badge"}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.