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   荣锋亮  阅读(132)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-04-10 k6 常见测试模式说明
2021-04-10 k6 使用参考
2021-04-10 dremio 开发测试简单说明
2021-04-10 cube.js prepareCompiler api 试用
2021-04-10 cube.js schema 预编译处理
2021-04-10 cube.js driver 开发一些说明
2019-04-10 nomad 0.9 新特性

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示