coolify 项目代码结构

coolify 是基于svelte kit 开发的,项目结构遵循了svelte kit 的布局以及开发模式

参考集成模式

构建说明

coolify 使用了js 的不少新特性,推荐使用node 16 以及以上版本,不然运行会有问题

关于svelte kit 的一些说明

svelte kit 使用了类似react next 的开发模式,支持服务端以及客户端处理,对于路由包含了
两类(page以及endpoint)page 是以.svelte 结尾的,如果是.js 以及.ts 就做为endpoint (同时需要暴露为handler)
svelte kit 包含了一个潜在的约定,比如我们开发的模块会放到lib 目录下,为了方便使用我们可以基于别名进行引用

coolify 模块结构

  • 参考目录结构
    实际上与next 的套路类似,文件夹的划分与支持的功能模块是一致的
 
├── app.d.ts
├── app.html
├── hooks.ts
├── lib
├── api.ts
├── buildPacks
├── common.ts
├── docker.ts
├── gatsby.ts
├── index.ts
├── nestjs.ts
├── nextjs.ts
├── node.ts
├── nuxtjs.ts
├── php.ts
├── python.ts
├── react.ts
├── rust.ts
├── static.ts
├── svelte.ts
└── vuejs.ts
├── common.ts
├── components
├── CopyPasswordField.svelte
├── DatabaseLinks.svelte
├── DeleteIcon.svelte
├── Explainer.svelte
├── Loading.svelte
├── ServiceLinks.svelte
├── Setting.svelte
├── common.ts
├── svg
├── applications
├── Astro.svelte
├── Docker.svelte
├── Eleventy.svelte
├── Gatsby.svelte
├── Nestjs.svelte
├── Nextjs.svelte
├── Nodejs.svelte
├── Nuxtjs.svelte
├── PHP.svelte
├── Python.svelte
├── React.svelte
├── Rust.svelte
├── Static.svelte
├── Svelte.svelte
└── Vuejs.svelte
├── databases
├── Clickhouse.svelte
├── CouchDB.svelte
├── MongoDB.svelte
├── MySQL.svelte
├── PostgreSQL.svelte
└── Redis.svelte
└── services
├── Ghost.svelte
├── LanguageTool.svelte
├── MeiliSearch.svelte
├── MinIO.svelte
├── N8n.svelte
├── NocoDB.svelte
├── PlausibleAnalytics.svelte
├── UptimeKuma.svelte
├── VSCodeServer.svelte
├── VaultWarden.svelte
└── Wordpress.svelte
└── templates.ts
├── crypto.ts
├── database
├── applications.ts
├── checks.ts
├── common.ts
├── databases.ts
├── destinations.ts
├── gitSources.ts
├── github.ts
├── gitlab.ts
├── index.ts
├── logs.ts
├── secrets.ts
├── services.ts
├── settings.ts
├── teams.ts
└── users.ts
├── dayjs.ts
├── docker.ts
├── form.ts
├── haproxy
├── configuration.ts
└── index.ts
├── importers
├── github.ts
├── gitlab.ts
└── index.ts
├── letsencrypt
└── index.ts
├── queues
├── builder.ts
├── cleanup.ts
├── index.ts
├── logger.ts
├── proxy.ts
├── ssl.ts
└── sslrenewal.ts
├── settings.ts
├── store.ts
└── types
└── composeFile.ts
├── routes
├── __error.svelte
├── __layout.svelte
├── applications
├── [id]
├── __layout.svelte
├── check.json.ts
├── configuration
├── _BuildPack.svelte
├── _GithubRepositories.svelte
├── _GitlabRepositories.svelte
├── buildpack.json.ts
├── buildpack.svelte
├── deploykey.json.ts
├── destination.json.ts
├── destination.svelte
├── githubToken.json.ts
├── repository.json.ts
├── repository.svelte
├── source.json.ts
├── source.svelte
└── sshkey.json.ts
├── delete.json.ts
├── deploy.json.ts
├── index.json.ts
├── index.svelte
├── logs
├── _Loading.svelte
├── build
├── _BuildLog.svelte
├── build.json.ts
├── index.json.ts
└── index.svelte
├── index.json.ts
└── index.svelte
├── previews
├── index.json.ts
└── index.svelte
├── secrets
├── _BatchSecrets.svelte
├── _Secret.svelte
├── index.json.ts
├── index.svelte
└── utils.ts
├── settings.json.ts
├── stop.json.ts
└── storage
├── _Storage.svelte
├── index.json.ts
└── index.svelte
├── index.svelte
├── index.ts
└── new.ts
├── common
└── getUniqueName.json.ts
├── dashboard.json.ts
├── databases
├── [id]
├── _Databases
├── _CouchDb.svelte
├── _Databases.svelte
├── _MongoDB.svelte
├── _MySQL.svelte
├── _PostgreSQL.svelte
└── _Redis.svelte
├── __layout.svelte
├── configuration
├── destination.json.ts
├── destination.svelte
├── type.json.ts
├── type.svelte
├── version.json.ts
└── version.svelte
├── delete.json.ts
├── index.json.ts
├── index.svelte
├── settings.json.ts
├── start.json.ts
└── stop.json.ts
├── index.svelte
├── index.ts
└── new.ts
├── destinations
├── [id]
├── _FoundApp.svelte
├── _LocalDocker.svelte
├── _RemoteDocker.svelte
├── __layout.svelte
├── index.json.ts
├── index.svelte
├── restart.json.ts
├── scan.json.ts
├── settings.json.ts
├── start.json.ts
└── stop.json.ts
├── index.json.ts
└── index.svelte
├── iam
├── index.json.ts
├── index.svelte
├── password.json.ts
└── team
└── [id]
├── __layout.svelte
├── index.json.ts
├── index.svelte
├── invitation
├── accept.json.ts
├── invite.json.ts
└── revoke.json.ts
├── permission
└── change.json.ts
└── remove
└── user.json.ts
├── index.svelte
├── login
├── index.json.ts
└── index.svelte
├── logout
└── index.json.ts
├── new
├── destination
├── _LocalDocker.svelte
├── _RemoteDocker.svelte
├── check.json.ts
├── docker.json.ts
└── index.svelte
└── team
├── index.json.ts
└── index.svelte
├── register
├── index.svelte
└── index.ts
├── reset
├── index.json.ts
├── index.svelte
└── password.json.ts
├── services
├── [id]
├── _Services
├── _Ghost.svelte
├── _MeiliSearch.svelte
├── _MinIO.svelte
├── _PlausibleAnalytics.svelte
├── _Services.svelte
├── _VSCodeServer.svelte
└── _Wordpress.svelte
├── __layout.svelte
├── check.json.ts
├── configuration
├── destination.json.ts
├── destination.svelte
├── type.json.ts
├── type.svelte
├── version.json.ts
└── version.svelte
├── delete.json.ts
├── ghost
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── index.json.ts
├── index.svelte
├── languagetool
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── meilisearch
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── minio
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── n8n
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── nocodb
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── plausibleanalytics
├── activate.json.ts
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── secrets
├── _Secret.svelte
├── index.json.ts
└── index.svelte
├── settings.json.ts
├── uptimekuma
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── vaultwarden
├── index.json.ts
├── start.json.ts
└── stop.json.ts
├── vscodeserver
├── index.json.ts
├── start.json.ts
└── stop.json.ts
└── wordpress
├── index.json.ts
├── settings.json.ts
├── start.json.ts
└── stop.json.ts
├── index.svelte
├── index.ts
└── new.ts
├── settings
├── check.json.ts
├── index.json.ts
└── index.svelte
├── sources
├── [id]
├── _Github.svelte
├── _Gitlab.svelte
├── __layout.svelte
├── check.json.ts
├── github.json.ts
├── gitlab.json.ts
├── index.json.ts
├── index.svelte
└── newGithubApp.svelte
├── index.json.ts
├── index.svelte
└── new.ts
├── undead.json.ts
├── update.json.ts
└── webhooks
├── github
├── events.ts
├── index.ts
└── install.ts
├── gitlab
├── events.ts
└── index.ts
└── success
└── index.svelte
└── tailwind.css

说明

coolify 代码结构还是很简单的,属于一个中规中矩的svelte kit 项目结构,后续会从源码上分析下实现机制

参考资料

https://github.com/coollabsio/coolify
https://kit.svelte.dev/
https://kit.svelte.dev/docs/introduction
https://kit.svelte.dev/docs/routing
https://kit.svelte.dev/docs/types#sveltejs-kit-requesthandler

posted on 2022-04-10 21:09  荣锋亮  阅读(113)  评论(0编辑  收藏  举报

导航