638969cd01
* yarn first go * fix frontend build cache loader * yarn workspaces built server Docker * build(yarn): add workspaces plugin config * chore(package defs): clean package*.json -s * chore(gitignore): ignore yarn error log * build(yarn): update yarn lock * build(preview-service webpack): add extra resolved path to preview service webpack config because of yarn package hoisting, there are no package level node_modules folder anymore. * build(docker): update dockerignore with yarn specific configs * build(docker): update Dockerfiles for yarn workspaces utilization * ci(circleci): update server test job to yarn * ci(circle): disable cache restore * ci(circleci): trying the node orb yarn-run * ci(circleci): yarn-run again * ci(circleci): disable node orb * ci(circleci): change base node image for tests * ci(circleci): add yarn cache * ci(circleci): remove node install step * ci(circleci): add server specific cache archives * ci(circleci): test build and publish * ci(circleci): change npm auth method to suit yarn * ci(circleci): trying new builder image * ci(circleci): another base image, maybe this works * ci(circleci): force a specific docker engine version * ci(circleci): add yarn version plugin and its changes * ci(circleci): cleanup and remove temp branch config * chore(package defs): moving from npm run to yarn * explicitly specifying webpack4 as a frontend dep * chore(package defs): replace npm with yarn everywhere * docs(root readme): update with some yarn specific docs * chore(root workspace): update dev scripts and package lock * ci(circleci): enable package publish step with yarn Co-authored-by: Fabians <fabis94@live.com>
121 lines
8.8 KiB
Markdown
121 lines
8.8 KiB
Markdown
<h1 align="center">
|
|
<img src="https://user-images.githubusercontent.com/2679513/131189167-18ea5fe1-c578-47f6-9785-3748178e4312.png" width="150px"/><br/>
|
|
Speckle | Server
|
|
</h1>
|
|
<h3 align="center">
|
|
Server and Web packages
|
|
</h3>
|
|
<p align="center"><b>Speckle</b> is data infrastructure for the AEC industry.</p><br/>
|
|
|
|
<p align="center"><a href="https://twitter.com/SpeckleSystems"><img src="https://img.shields.io/twitter/follow/SpeckleSystems?style=social" alt="Twitter Follow"></a> <a href="https://speckle.community"><img src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fspeckle.community&style=flat-square&logo=discourse&logoColor=white" alt="Community forum users"></a> <a href="https://speckle.systems"><img src="https://img.shields.io/badge/https://-speckle.systems-royalblue?style=flat-square" alt="website"></a> <a href="https://speckle.guide/dev/"><img src="https://img.shields.io/badge/docs-speckle.guide-orange?style=flat-square&logo=read-the-docs&logoColor=white" alt="docs"></a></p>
|
|
|
|
<p align="center">
|
|
<a href="https://github.com/Speckle-Next/SpeckleServer/"><img src="https://circleci.com/gh/specklesystems/speckle-server.svg?style=svg&circle-token=76eabd350ea243575cbb258b746ed3f471f7ac29" alt="Speckle-Next">
|
|
</a>
|
|
<a href="https://codecov.io/gh/specklesystems/speckle-server">
|
|
<img src="https://codecov.io/gh/specklesystems/speckle-server/branch/master/graph/badge.svg" alt="codecov">
|
|
</a>
|
|
<a href="https://results.pre-commit.ci/latest/github/specklesystems/speckle-server/main">
|
|
<img src="https://results.pre-commit.ci/badge/github/specklesystems/speckle-server/main.svg" alt="codecov">
|
|
</a>
|
|
</p>
|
|
|
|
# About Speckle
|
|
|
|
What is Speckle? Check our [](https://www.youtube.com/watch?v=B9humiSpHzM)
|
|
|
|
### Features
|
|
|
|
- **Object-based:** say goodbye to files! Speckle is the first object based platform for the AEC industry
|
|
- **Version control:** Speckle is the Git & Hub for geometry and BIM data
|
|
- **Collaboration:** share your designs collaborate with others
|
|
- **3D Viewer:** see your CAD and BIM models online, share and embed them anywhere
|
|
- **Interoperability:** get your CAD and BIM models into other software without exporting or importing
|
|
- **Real time:** get real time updates and notifications and changes
|
|
- **GraphQL API:** get what you need anywhere you want it
|
|
- **Webhooks:** the base for a automation and next-gen pipelines
|
|
- **Built for developers:** we are building Speckle with developers in mind and got tools for every stack
|
|
- **Built for the AEC industry:** Speckle connectors are plugins for the most common software used in the industry such as Revit, Rhino, Grasshopper, AutoCAD, Civil 3D, Excel, Unreal Engine, Unity, QGIS, Blender, ArchiCAD and more!
|
|
|
|
### Try Speckle now!
|
|
|
|
Give Speckle a try in no time by:
|
|
|
|
- [](https://speckle.xyz) ⇒ creating an account at
|
|
- [](https://marketplace.digitalocean.com/apps/speckle-server?refcode=947a2b5d7dc1) ⇒ deploying an instance in 1 click
|
|
|
|
### Resources
|
|
|
|
- [](https://speckle.community) for help, feature requests or just to hang with other speckle enthusiasts, check out our community forum!
|
|
- [](https://speckle.systems) our tutorials portal is full of resources to get you started using Speckle
|
|
- [](https://speckle.guide/dev/) reference on almost any end-user and developer functionality
|
|
|
|
# Repo structure
|
|
|
|
This monorepo is the home of the Speckle v2 web packages:
|
|
|
|
- [`packages/server`](https://github.com/specklesystems/speckle-server/blob/main/packages/server): the Server, a nodejs app. Core external dependencies are a Redis and Postgresql db.
|
|
- [`packages/frontend`](https://github.com/specklesystems/speckle-server/blob/main/packages/frontend): the Frontend, a static Vue app.
|
|
- [`packages/viewer`](https://github.com/specklesystems/speckle-server/blob/main/packages/viewer): a threejs extension that allows you to display 3D data [](https://www.npmjs.com/package/@speckle/viewer)
|
|
- [`packages/objectloader`](https://github.com/specklesystems/speckle-server/blob/main/packages/objectloader): a small js utility class that helps you stream an object and all its sub-components from the Speckle Server API. [](https://www.npmjs.com/package/@speckle/objectloader)
|
|
- [`packages/preview-service`](https://github.com/specklesystems/speckle-server/blob/main/packages/preview-service): generates object previews for Speckle Objects headlessly. This package is meant to be called on by the server.
|
|
- [`packages/webhook-service`](https://github.com/specklesystems/speckle-server/tree/main/packages/webhook-service): making external webhook calls
|
|
- [`packages/fileimport-service`](https://github.com/specklesystems/speckle-server/tree/main/packages/fileimport-service): parsing and importing files
|
|
|
|
### Other repos
|
|
|
|
Make sure to also check and ⭐️ these other Speckle repositories:
|
|
|
|
- [`speckle-sharp`](https://github.com/specklesystems/speckle-sharp): .NET tooling, connectors and interoperability
|
|
- [`specklepy`](https://github.com/specklesystems/specklepy): Python SDK 🐍
|
|
- [`speckle-excel`](https://github.com/specklesystems/speckle-excel): Excel connector
|
|
- [`speckle-unity`](https://github.com/specklesystems/speckle-unity): Unity 3D connector
|
|
- [`speckle-blender`](https://github.com/specklesystems/speckle-blender): Blender connector
|
|
- [`speckle-unreal`](https://github.com/specklesystems/speckle-unreal): Unreal Engine Connector
|
|
- [`speckle-qgis`](https://github.com/specklesystems/speckle-qgis): QGIS connectod
|
|
- [`speckle-powerbi`](https://github.com/specklesystems/speckle-powerbi): PowerBi connector
|
|
- and more [connectors & tooling](https://github.com/specklesystems/)!
|
|
|
|
## Developing and Debugging
|
|
|
|
Have you checked our [dev docs](https://speckle.guide/dev/)?
|
|
|
|
We have a detailed section on [deploying a Speckle server](https://speckle.guide/dev/server-setup.html). To get started developing locally, you can see the [Local development environment](https://speckle.guide/dev/server-local-dev.html) page.
|
|
|
|
### TL;DR;
|
|
|
|
We're using yarn and its workspaces functionalities to manage the monorepo.
|
|
Make sure you are using nodejs 16+.
|
|
To get started, run:
|
|
|
|
`$ corepack enable`
|
|
`$ yarn`
|
|
`$ yarn build`
|
|
|
|
After this, you can use the scripts in the individual packages or run all in dev mode:
|
|
`$ yarn dev`
|
|
|
|
### IDE
|
|
|
|
The suggested IDE for working in this repo is VSCode, because the repo has special configs to improve the DX there (auto-format & auto-lint, recommended extensions etc.).
|
|
|
|
This repository relies on [VSCode multi-root workspaces](https://code.visualstudio.com/docs/editor/multi-root-workspaces), so for the best DX and proper formatting/linting make sure you open the project using the `workspace.code-workspace` file instead of just opening the folder in VSCode.
|
|
|
|
### Contributing
|
|
|
|
Please make sure you read the [contribution guidelines](https://github.com/specklesystems/speckle-server/blob/main/CONTRIBUTING.md) for an overview of the best practices we try to follow.
|
|
|
|
When pushing commits to this repo, please follow the following guidelines:
|
|
|
|
- Before commiting, make sure `$ yarn lint` and `$ yarn prettier:check` checks pass, othewise the pre-commit hook fails.
|
|
- When ready to commit, `$ yarn cz` & follow the prompts.
|
|
- Please use the name of the package as the scope of your commit.
|
|
|
|
### Security
|
|
|
|
For any security vulnerabilities or concerns, please contact us directly at security[at]speckle.systems.
|
|
|
|
### License
|
|
|
|
Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems).
|