forked from TrueCloudLab/frostfs.info
Compare commits
10 commits
Author | SHA1 | Date | |
---|---|---|---|
eefc2f9b4b | |||
c323ebe727 | |||
ff43e162f4 | |||
064d96d44c | |||
727a5f7b88 | |||
b9481225d5 | |||
576d108b3b | |||
6190e5a098 | |||
449a8c33bd | |||
42cea4b03e |
15 changed files with 342 additions and 15 deletions
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
55
.forgejo/workflows/build.yml
Normal file
55
.forgejo/workflows/build.yml
Normal file
|
@ -0,0 +1,55 @@
|
|||
name: build static site
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
container:
|
||||
image: node:22-bookworm
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |-
|
||||
bin/
|
||||
themes/
|
||||
key: hugo-${{ runner.os }}-${{ hashFiles('Makefile', 'config.toml') }}
|
||||
restore-keys: |
|
||||
hugo-${{ runner.os }}
|
||||
hugo
|
||||
|
||||
- name: make all
|
||||
run: |
|
||||
git submodule sync
|
||||
rm -rf themes/dot-hugo
|
||||
make all
|
||||
|
||||
- name: Setup SSH environment
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
||||
env:
|
||||
SSH_AUTH_SOCK: /tmp/ssh_agent.socket
|
||||
run: |
|
||||
umask 0077
|
||||
mkdir -p ~/.ssh/
|
||||
ssh-keyscan frostfs.info >> ~/.ssh/known_hosts
|
||||
ssh-keygen -A # create host keys
|
||||
ssh-agent -a "$SSH_AUTH_SOCK"
|
||||
echo "${{ secrets.SSH_DEPLOY_KEY }}" > ~/.ssh/key
|
||||
stat ~/.ssh/key
|
||||
ssh-keygen -y -f ~/.ssh/key
|
||||
ssh-add ~/.ssh/key
|
||||
rm ~/.ssh/key
|
||||
|
||||
- name: make deploy
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
||||
run: |
|
||||
ssh-add -L
|
||||
make deploy
|
||||
env:
|
||||
SSH_AUTH_SOCK: /tmp/ssh_agent.socket
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -3,7 +3,7 @@
|
|||
*.log
|
||||
*.lock
|
||||
tmp/
|
||||
bin/hugo
|
||||
bin/hugo*
|
||||
|
||||
public/
|
||||
resources/_gen
|
||||
|
|
2
.gitmodules
vendored
2
.gitmodules
vendored
|
@ -1,4 +1,4 @@
|
|||
[submodule "themes/dot-hugo"]
|
||||
path = themes/dot-hugo
|
||||
url = git@git.frostfs.info:TrueCloudLab/dot-hugo.git
|
||||
url = https://git.frostfs.info/TrueCloudLab/dot-hugo
|
||||
branch = frostfs_design_version
|
||||
|
|
3
CODEOWNERS
Normal file
3
CODEOWNERS
Normal file
|
@ -0,0 +1,3 @@
|
|||
.* @TrueCloudLab/architecture-committee
|
||||
.forgejo/.* @potyarkin
|
||||
Makefile @potyarkin
|
16
Makefile
16
Makefile
|
@ -3,26 +3,32 @@ SHELL = bash
|
|||
|
||||
PUBDIR = public
|
||||
HUGO_VERSION = 0.91.0
|
||||
HUGO_BIN ?= bin/hugo
|
||||
HUGO_BIN ?= bin/hugo-$(HUGO_VERSION)
|
||||
|
||||
.PHONY: all clean
|
||||
all: public
|
||||
|
||||
bin/hugo:
|
||||
bin/hugo-$(HUGO_VERSION):
|
||||
@wget -q https://github.com/gohugoio/hugo/releases/download/v$(HUGO_VERSION)/hugo_extended_$(HUGO_VERSION)_Linux-64bit.tar.gz -O - |\
|
||||
tar -xz -C bin/ hugo;
|
||||
@mv bin/hugo $@
|
||||
|
||||
clean:
|
||||
@rm -rf $(PUBDIR)
|
||||
@rm -rf tmp
|
||||
@rm -rf bin/hugo
|
||||
@rm -rf bin/hugo*
|
||||
|
||||
public: submodules bin/hugo
|
||||
public: submodules $(HUGO_BIN)
|
||||
@$(HUGO_BIN)
|
||||
|
||||
server: submodules bin/hugo
|
||||
server: submodules $(HUGO_BIN)
|
||||
@$(HUGO_BIN) server --disableFastRender
|
||||
|
||||
submodules:
|
||||
@git submodule init
|
||||
@git submodule update --recursive --remote
|
||||
|
||||
.PHONY: deploy
|
||||
deploy:
|
||||
test -f public/index.html
|
||||
cd public && tar --gzip --create . | ssh deploy@frostfs.info frostfs.info
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<p align="center">
|
||||
<img src="./.github/logo.svg" width="500px" alt="FrostFS logo">
|
||||
<img src="./.forgejo/logo.svg" width="500px" alt="FrostFS logo">
|
||||
</p>
|
||||
<p align="center">
|
||||
FrostFS Documentation site
|
||||
|
|
18
config.toml
18
config.toml
|
@ -3,7 +3,7 @@ baseURL = 'https://frostfs.info/'
|
|||
# disable language
|
||||
disableLanguages = []
|
||||
|
||||
title = 'FrostFS site'
|
||||
title = 'FrostFS'
|
||||
theme = 'dot-hugo'
|
||||
|
||||
enableEmoji = true
|
||||
|
@ -49,12 +49,12 @@ link = "https://git.frostfs.info/TrueCloudLab"
|
|||
languageName = "En"
|
||||
languageCode = "en-us"
|
||||
weight = 1
|
||||
copyright = "Copyright © [TrueCloudLab](https://git.frostfs.info/TrueCloudLab) 2022-2023"
|
||||
copyright = "Copyright © [TrueCloudLab](https://git.frostfs.info/TrueCloudLab) 2022-2024"
|
||||
|
||||
# banner
|
||||
[Languages.en.params.banner]
|
||||
title = "FrostFS Documentation site"
|
||||
subtitle = "Articles and answers from developers and user community"
|
||||
title = "FrostFS Documentation"
|
||||
subtitle = "FrostFS is a decentralized distributed object storage integrated with the NEO Blockchain"
|
||||
#bg_image = "images/header.svg"
|
||||
placeholder = "Have a question? Just ask here or enter terms"
|
||||
|
||||
|
@ -68,3 +68,13 @@ weight = 1
|
|||
name = "SDK & API"
|
||||
url = "api/"
|
||||
weight = 2
|
||||
|
||||
[[Languages.en.menu.main]]
|
||||
name = "About"
|
||||
url = "about/"
|
||||
weight = 3
|
||||
|
||||
[[Languages.en.menu.main]]
|
||||
name = "Contact"
|
||||
url = "about/contact/"
|
||||
weight = 4
|
||||
|
|
59
content/about/_index.en.md
Normal file
59
content/about/_index.en.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
title: "About FrostFS"
|
||||
description: "Overview of FrostFS architecture and features"
|
||||
date: "2025-02-18"
|
||||
icon: "ti-info-alt"
|
||||
type: "docs"
|
||||
---
|
||||
|
||||
FrostFS is a free and opensource software-defined object storage platfom.
|
||||
It exposes a bespoke [gRPC API] and provides protocol gateways for [S3] and
|
||||
[HTTP] (FUSE and sFTP gateways are also planned). Application developers may
|
||||
connect through gateways or use native FrostFS protocol via first-party SDKs for
|
||||
[Go], [Java], [C#] and [Python].
|
||||
|
||||
FrostFS deploys to a network of nodes which can be distributed planet-wide.
|
||||
All FrostFS components are designed to operate in untrusted and unstable
|
||||
networks (exposed to Internet). Integration with [Neo blockchain] provides
|
||||
battle tested mechanisms for trusted governing, time keeping and consensus
|
||||
building. Private FrostFS deployments are also possible (using Neo privnet).
|
||||
|
||||
FrostFS stores data in objects — arbitrarily large binary blobs and their
|
||||
assosiated metadata — which are typically assumed to be read or written as a
|
||||
whole. FrostFS objects are immutable and content-addressable: object
|
||||
identificators (OIDs) are calculated based on object's data and metadata, for
|
||||
example: `78sohnudVMnPsczXqsTUcvezosan2YDNVZwDE8Kq5YwU`. Objects are stored
|
||||
in containers which encapsulate the selected placement policy and some
|
||||
additional metadata. FrostFS containers are also content-addressable (by CIDs)
|
||||
and are immutable in a sense that placement policy and container metadata may
|
||||
not be changed after container creation.
|
||||
|
||||
FrostFS ensures storage reliability on multiple levels:
|
||||
|
||||
- Data replication and erasure coding provide tolerance for equipment
|
||||
failures. Users have full control over data placement policies and may
|
||||
configure a specific failure domain for each container.
|
||||
- Network isolation and split-brain situations are considered a fact of life
|
||||
in FrostFS design. Operations will continue as close to normal as possible
|
||||
both during and after such events, no network-wide rebalance storms will be
|
||||
triggered. Split-brain and time drift reconciliation happens automatically
|
||||
in a safe and deterministic fashion.
|
||||
|
||||
FrostFS is truly distributed, there is no centralized state or database.
|
||||
Losing any node means losing only the data it contained (typically recoverable
|
||||
via replication and/or erasure coding). Adding new nodes is a non-event,
|
||||
FrostFS allows to grow total storage capacity without any downsides.
|
||||
|
||||
FrostFS is developed in the open at
|
||||
[git.frostfs.info](https://git.frostfs.info/TrueCloudLab/). FrostFS components
|
||||
are opensource: most are released under GNU GPL 3.0 with the rest under Apache
|
||||
2.0.
|
||||
|
||||
[gRPC API]: https://git.frostfs.info/TrueCloudLab/frostfs-api
|
||||
[S3]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw
|
||||
[HTTP]: https://git.frostfs.info/TrueCloudLab/frostfs-http-gw
|
||||
[Go]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-go
|
||||
[Java]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-java
|
||||
[C#]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-csharp
|
||||
[Python]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-python
|
||||
[Neo blockchain]: https://neo.org/about
|
32
content/about/contact.en.md
Normal file
32
content/about/contact.en.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: Contact us
|
||||
date: 2025-02-18
|
||||
---
|
||||
|
||||
## Bug reports
|
||||
|
||||
Bugs should be reported to the relevant FrostFS component repository,
|
||||
available at [git.frostfs.info](https://git.frostfs.info/TrueCloudLab).
|
||||
|
||||
If you are unsure which repo your bug belongs to you may contact us privately
|
||||
at [info@frostfs.info](mailto:info@frostfs.info) or ask in [chat](#chat). You
|
||||
may also report the bug to
|
||||
[frostfs-node](https://git.frostfs.info/TrueCloudLab/frostfs-node) and let the
|
||||
maintainers handle it from there.
|
||||
|
||||
## Enhancement proposals
|
||||
|
||||
Significant technical and process changes should be submitted as
|
||||
FrostFS Enhancement Proposals, see [FEP-1]({{< ref "proposals/proc/fep-0001" >}}).
|
||||
|
||||
## Security vulnerabilities
|
||||
|
||||
Security vulnerabilities should be reported through private mailing list
|
||||
[security@frostfs.info](mailto:security@frostfs.info).
|
||||
Please refer to the [security policy page]({{< relref "security.md" >}}) for more information.
|
||||
|
||||
## Chat
|
||||
|
||||
For real-time chat with FrostFS developers and other community members please
|
||||
join our channels in Matrix:
|
||||
[#frostfs:matrix.org](https://matrix.to/#/#frostfs:matrix.org)
|
101
content/about/contributing.en.md
Normal file
101
content/about/contributing.en.md
Normal file
|
@ -0,0 +1,101 @@
|
|||
---
|
||||
title: Contribution guide
|
||||
date: 2025-02-18
|
||||
---
|
||||
|
||||
First, thank you for contributing! We love and encourage pull requests from
|
||||
everyone. Please follow the guidelines:
|
||||
|
||||
- Find out [which repository](https://git.frostfs.info/TrueCloudLab) contains
|
||||
the code you intend to modify.
|
||||
- Check open issues and pull requests in that repository for existing
|
||||
discussions.
|
||||
- Open an issue first, to discuss a new feature or enhancement.
|
||||
- Write tests, and make sure the test suite passes locally and in CI.
|
||||
- Open a pull request, and reference the relevant issue(s).
|
||||
- Make sure your commits are logically separated and have good comments
|
||||
explaining the details of your change.
|
||||
- After receiving feedback, amend your commits or add new ones as
|
||||
appropriate.
|
||||
- **Have fun!**
|
||||
|
||||
## Git Workflow
|
||||
|
||||
FrostFS repositories use
|
||||
[trunk-based](https://trunkbaseddevelopment.com/#scaled-trunk-based-development)
|
||||
Git workflow:
|
||||
|
||||
- Development happens in short-lived branches in personal forks of the main
|
||||
repo.
|
||||
- Changes are then submitted as a pull request to the master branch of the
|
||||
main repo.
|
||||
- Changes are merged to the master branch after passing code review and CI
|
||||
checks.
|
||||
- Prefered merge strategy is "rebase-and-fastforward" which results in a nice
|
||||
linear Git history.
|
||||
- Squashing multiple commits in a single pull request is not required and
|
||||
may even be frowned upon if it obstructs change review.
|
||||
|
||||
We encourage submitting work-in-progress pull requests to discuss code changes.
|
||||
|
||||
|
||||
## Developer's Certificate of Origin
|
||||
|
||||
All FrostFS developers retain copyright to their work. However, to ensure
|
||||
that they are only submitting work that they have rights to, we are requiring
|
||||
everyone to acknowledge this by signing their work.
|
||||
|
||||
Any copyright notices in FrostFS repositories should specify the authors as "the
|
||||
contributors".
|
||||
|
||||
To sign your work, just add a line like this at the end of your commit message:
|
||||
|
||||
```
|
||||
Signed-off-by: Samii Sakisaka <samii@ivunojikan.co.jp>
|
||||
|
||||
```
|
||||
|
||||
This can easily be done with the `--signoff` option to `git commit`.
|
||||
|
||||
By doing this you state that you can certify the following (from [The Developer
|
||||
Certificate of Origin](https://developercertificate.org/)):
|
||||
|
||||
```
|
||||
Developer Certificate of Origin
|
||||
Version 1.1
|
||||
|
||||
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
|
||||
1 Letterman Drive
|
||||
Suite D4700
|
||||
San Francisco, CA, 94129
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
|
||||
Developer's Certificate of Origin 1.1
|
||||
|
||||
By making a contribution to this project, I certify that:
|
||||
|
||||
(a) The contribution was created in whole or in part by me and I
|
||||
have the right to submit it under the open source license
|
||||
indicated in the file; or
|
||||
|
||||
(b) The contribution is based upon previous work that, to the best
|
||||
of my knowledge, is covered under an appropriate open source
|
||||
license and I have the right under that license to submit that
|
||||
work with modifications, whether created in whole or in part
|
||||
by me, under the same open source license (unless I am
|
||||
permitted to submit under a different license), as indicated
|
||||
in the file; or
|
||||
|
||||
(c) The contribution was provided directly to me by some other
|
||||
person who certified (a), (b) or (c) and I have not modified
|
||||
it.
|
||||
|
||||
(d) I understand and agree that this project and the contribution
|
||||
are public and that a record of the contribution (including all
|
||||
personal information I submit with it, including my sign-off) is
|
||||
maintained indefinitely and may be redistributed consistent with
|
||||
this project or the open source license(s) involved.
|
||||
```
|
15
content/about/forge.en.md
Normal file
15
content/about/forge.en.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: Using git.frostfs.info
|
||||
date: 2025-02-18
|
||||
---
|
||||
|
||||
All FrostFS repositories are hosted at https://git.frostfs.info which runs an
|
||||
instance of Forgejo. Most of the interface will be familiar if you have used
|
||||
GitHub or GitLab before.
|
||||
[Forgejo User Guide](https://forgejo.org/docs/latest/user/) may also be of help.
|
||||
|
||||
## Signing in
|
||||
|
||||
We recommend you to sign in using your GitHub or Codeberg account.
|
||||
If you have neither and do not want to register any you may [contact us]({{<
|
||||
relref "contact">}}) and ask for an account.
|
30
content/about/security.en.md
Normal file
30
content/about/security.en.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
title: Security policy
|
||||
date: 2025-02-18
|
||||
---
|
||||
|
||||
|
||||
## How To Report a Vulnerability
|
||||
|
||||
If you think you have found a vulnerability in any FrostFS component, please
|
||||
report it to us through coordinated disclosure.
|
||||
|
||||
Contact TrueCloudLab security team at
|
||||
**[security@frostfs.info](mailto:security@frostfs.info)**
|
||||
|
||||
Please do not report security vulnerabilities through public issues,
|
||||
discussions, or change requests.
|
||||
|
||||
Please include as much information as you can to help us better understand and resolve the issue:
|
||||
|
||||
- The type of issue (e.g., buffer overflow, or cross-site scripting)
|
||||
- Affected components and their versions
|
||||
- Impact of the issue, including how an attacker might exploit the issue
|
||||
- Step-by-step instructions to reproduce the issue
|
||||
- The location of the affected source code (tag/branch/commit or direct URL)
|
||||
- Full paths of source file(s) related to the manifestation of the issue
|
||||
- Any special configuration required to reproduce the issue
|
||||
- Any log files that are related to this issue (if possible)
|
||||
- Proof-of-concept or exploit code (if possible)
|
||||
|
||||
This information will help us triage your report more quickly.
|
|
@ -3,7 +3,23 @@ title: "API & SDK"
|
|||
icon: "ti-panel"
|
||||
description: "API and SDK implementations"
|
||||
type: "docs"
|
||||
date: "2022-12-22"
|
||||
date: "2025-02-27"
|
||||
---
|
||||
|
||||
FrostFS provides has language agnostic [gRPC API](https://git.frostfs.info/TrueCloudLab/frostfs-api) declarations and few API and SDK implementation for different programming languages.
|
||||
FrostFS provides language agnostic [gRPC API] declarations and few API and
|
||||
SDK implementations for different programming languages:
|
||||
[Go], [Java], [C#], [Python].
|
||||
|
||||
Auto-generated API documentation for Go packages is available at pkg.go.dev:
|
||||
|
||||
- [frostfs-sdk-go](https://pkg.go.dev/git.frostfs.info/TrueCloudLab/frostfs-sdk-go)
|
||||
- [frostfs-node](https://pkg.go.dev/git.frostfs.info/TrueCloudLab/frostfs-node)
|
||||
- [frostfs-s3-gw](https://pkg.go.dev/git.frostfs.info/TrueCloudLab/frostfs-s3-gw)
|
||||
- [frostfs-http-gw](https://pkg.go.dev/git.frostfs.info/TrueCloudLab/frostfs-http-gw)
|
||||
- [frostfs-contract](https://pkg.go.dev/git.frostfs.info/TrueCloudLab/frostfs-contract)
|
||||
|
||||
[gRPC API]: https://git.frostfs.info/TrueCloudLab/frostfs-api
|
||||
[Go]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-go
|
||||
[Java]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-java
|
||||
[C#]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-csharp
|
||||
[Python]: https://git.frostfs.info/TrueCloudLab/frostfs-sdk-python
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- id: topics_title
|
||||
translation: Find your answer by subject
|
||||
translation: Learn about FrostFS
|
||||
|
||||
- id: send
|
||||
translation: Send
|
||||
|
|
Loading…
Add table
Reference in a new issue