Move to monorepo
Move all of our code into a monorepo in preparation of open sourcing our server.
First I describe the general plan, then later I've kept an exact log of the
commands that I used. This was all done prior to this commit, but this commit
(that introduces the various top level files) seems like a good way to summarize
the entire process.
Clone auth. Auth is our base repository.
```sh
git clone https://github.com/ente-io/auth.git && cd auth
```
Move all of auth's files into `auth/`.
```sh
mkdir auth
git mv `find . -maxdepth 1 | grep -v -e '\.$' -e '\.\/.git$' -e '\.\/auth$'` auth
git commit -m 'Move into auth/'
```
Add photos-web as a new remote, and fetch its main.
```sh
git remote add photos-web https://github.com/ente-io/photos-web.git
git fetch photos-web main
```
Switch to main of web-photos.
```sh
git checkout -b photos-web-main photos-web/main
```
Move all of its files into `web` (note, the find now has an extra exclusion for
`web`, but we keep all the old ones too):
```sh
mkdir web
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$'` web
git commit -m 'Move into web/'
```
Switch back to main main, and merge the photos-web branch. The
`--allow-unrelated-histories` flag is needed (since these two branches don't
have any previous common ancestor).
```sh
git checkout main
git merge --allow-unrelated-histories photos-web-main
```
That's it. We then repeat this process for all the other repositories that we
need to bring in.
There is no magic involved here, so regular git commands will continue working.
However, all the files get renamed, so to track the git history prior to this
rename commit we'll need to pass the `--follow` flag.
git log --follow -p -- auth/migration-guides/encrypted_export.md
For some file names like README.md which exist in multiple repositories, this
doesn't seem to work so good (I don't fully understand why). For example,
`git log --follow -p -- auth/README.md lists the changes to all the READMEs,
not just the auth README.md.
```sh
git clone https://github.com/ente-io/auth.git ente
cd ente
mkdir auth
git mv `find . -maxdepth 1 | grep -v -e '\.$' -e '\.\/.git$' -e '\.\/auth$'` auth
git commit -m 'Move into auth/'
git remote add photos-web https://github.com/ente-io/photos-web.git
git fetch photos-web main
git checkout -b photos-web-main photos-web/main
mkdir web
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$'` web
git commit -m 'Move into web/'
git checkout main
git merge --allow-unrelated-histories photos-web-main
git branch -D photos-web-main
git remote remove photos-web
git remote add photos-app https://github.com/ente-io/photos-app.git
git fetch photos-app main
git checkout -b photos-app-main photos-app/main
mkdir mobile
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$' -e '^\.\/mobile$'` mobile
git commit -m 'Move into mobile/'
git checkout main
git merge --allow-unrelated-histories photos-app-main
git branch -D photos-app-main
git remote remove photos-app
git remote add photos-desktop https://github.com/ente-io/photos-desktop.git
git fetch photos-desktop main
git checkout -b photos-desktop-main photos-desktop/main
mkdir desktop
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\./.gitmodules$' -e '^\.\/desktop$'` desktop
git mv .gitmodules desktop
git commit -m 'Move into desktop/'
git checkout main
git merge --allow-unrelated-histories photos-desktop-main
git branch -D photos-desktop-main
git remote remove photos-desktop
git remote add cli https://github.com/ente-io/cli.git
git fetch cli main
git checkout -b cli-main cli/main
mkdir cli
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/cli$'` cli
git commit -m 'Move into cli/'
git checkout main
git merge --allow-unrelated-histories cli-main
git branch -D cli-main
git remote remove cli
git remote add docs https://github.com/ente-io/docs.git
git fetch docs main
git checkout -b docs-main docs/main
mkdir docs-1
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/docs-1$'` docs-1
git mv docs-1 docs
git commit -m 'Move into docs/'
git checkout main
git merge --allow-unrelated-histories docs-main
git branch -D docs-main
git remote remove docs
```
2024-03-01 07:31:41 +00:00
|
|
|
<div align="center">
|
|
|
|
|
|
|
|
<img src=".github/assets/ente-rocketship.png" width="400"/>
|
|
|
|
|
|
|
|
Fully open source end-to-end encrypted photos, authenticators and more.
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
# Ente
|
|
|
|
|
|
|
|
Ente is a service that provides a fully open source, end-to-end encrypted
|
|
|
|
platform for you to store your data in the cloud without needing to trust the
|
|
|
|
service provider. On top of this platform, we have built two apps so far: Ente
|
|
|
|
Photos (an alternative to Apple and Google Photos) and Ente Auth (a 2FA
|
|
|
|
alternative to the deprecated Authy).
|
|
|
|
|
|
|
|
This monorepo contains all our source code - the client apps (iOS / Android /
|
|
|
|
F-Droid / Web / Linux / macOS / Windows) for both the products (and more planned
|
|
|
|
future ones!), and the server that powers them.
|
|
|
|
|
|
|
|
Our source code and cryptography have been externally audited by Cure53 (a
|
|
|
|
German cybersecurity firm, arguably the world's best), Symbolic Software (French
|
|
|
|
cryptography experts) and Fallible (an Indian penetration testing firm).
|
|
|
|
|
|
|
|
Learn more at [ente.io](https://ente.io).
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
## Ente Photos
|
|
|
|
|
|
|
|
![Screenshots of Ente Photos](.github/assets/photos.png)
|
|
|
|
|
|
|
|
Our flagship product. 3x data replication. On device machine learning. Cross
|
|
|
|
platform. Private sharing. Collaborative albums. Family plans. Easy import,
|
|
|
|
easier export. Background uploads. The list goes on. And of course, all of this,
|
|
|
|
while being fully end-to-end encrypted.
|
|
|
|
|
|
|
|
Ente Photos is a paid service, but we offer a free trial. You can also clone
|
|
|
|
this repository and choose to self host.
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
|
|
|
[<img height="42" src=".github/assets/app-store-badge.svg">](https://apps.apple.com/app/id1542026904)
|
|
|
|
[<img height="42" src=".github/assets/play-store-badge.png">](https://play.google.com/store/apps/details?id=io.ente.photos)
|
|
|
|
[<img height="42" src=".github/assets/f-droid-badge.png">](https://f-droid.org/packages/io.ente.photos.fdroid/)
|
|
|
|
[<img height="42" src=".github/assets/desktop-badge.png">](https://ente.io/download/desktop)
|
|
|
|
[<img height="42" src=".github/assets/web-badge.svg">](https://web.ente.io)
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
## Ente Auth
|
|
|
|
|
|
|
|
![Screenshots of Ente Photos](.github/assets/auth.png)
|
|
|
|
|
|
|
|
Our labour of love. Two years ago, while building Ente Photos, we realized that
|
|
|
|
there was no open source end-to-end encrypted authenticator app. We already had
|
|
|
|
the building blocks, so we built one.
|
|
|
|
|
|
|
|
Ente Auth is currently free. If in the future we convert this to a paid service,
|
|
|
|
existing users will be grandfathered in.
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
2024-03-01 15:35:18 +00:00
|
|
|
[<img height="42" src=".github/assets/app-store-badge.svg">](https://apps.apple.com/app/id6444121398)
|
Move to monorepo
Move all of our code into a monorepo in preparation of open sourcing our server.
First I describe the general plan, then later I've kept an exact log of the
commands that I used. This was all done prior to this commit, but this commit
(that introduces the various top level files) seems like a good way to summarize
the entire process.
Clone auth. Auth is our base repository.
```sh
git clone https://github.com/ente-io/auth.git && cd auth
```
Move all of auth's files into `auth/`.
```sh
mkdir auth
git mv `find . -maxdepth 1 | grep -v -e '\.$' -e '\.\/.git$' -e '\.\/auth$'` auth
git commit -m 'Move into auth/'
```
Add photos-web as a new remote, and fetch its main.
```sh
git remote add photos-web https://github.com/ente-io/photos-web.git
git fetch photos-web main
```
Switch to main of web-photos.
```sh
git checkout -b photos-web-main photos-web/main
```
Move all of its files into `web` (note, the find now has an extra exclusion for
`web`, but we keep all the old ones too):
```sh
mkdir web
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$'` web
git commit -m 'Move into web/'
```
Switch back to main main, and merge the photos-web branch. The
`--allow-unrelated-histories` flag is needed (since these two branches don't
have any previous common ancestor).
```sh
git checkout main
git merge --allow-unrelated-histories photos-web-main
```
That's it. We then repeat this process for all the other repositories that we
need to bring in.
There is no magic involved here, so regular git commands will continue working.
However, all the files get renamed, so to track the git history prior to this
rename commit we'll need to pass the `--follow` flag.
git log --follow -p -- auth/migration-guides/encrypted_export.md
For some file names like README.md which exist in multiple repositories, this
doesn't seem to work so good (I don't fully understand why). For example,
`git log --follow -p -- auth/README.md lists the changes to all the READMEs,
not just the auth README.md.
```sh
git clone https://github.com/ente-io/auth.git ente
cd ente
mkdir auth
git mv `find . -maxdepth 1 | grep -v -e '\.$' -e '\.\/.git$' -e '\.\/auth$'` auth
git commit -m 'Move into auth/'
git remote add photos-web https://github.com/ente-io/photos-web.git
git fetch photos-web main
git checkout -b photos-web-main photos-web/main
mkdir web
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$'` web
git commit -m 'Move into web/'
git checkout main
git merge --allow-unrelated-histories photos-web-main
git branch -D photos-web-main
git remote remove photos-web
git remote add photos-app https://github.com/ente-io/photos-app.git
git fetch photos-app main
git checkout -b photos-app-main photos-app/main
mkdir mobile
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/auth$' -e '^\.\/web$' -e '^\.\/mobile$'` mobile
git commit -m 'Move into mobile/'
git checkout main
git merge --allow-unrelated-histories photos-app-main
git branch -D photos-app-main
git remote remove photos-app
git remote add photos-desktop https://github.com/ente-io/photos-desktop.git
git fetch photos-desktop main
git checkout -b photos-desktop-main photos-desktop/main
mkdir desktop
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\./.gitmodules$' -e '^\.\/desktop$'` desktop
git mv .gitmodules desktop
git commit -m 'Move into desktop/'
git checkout main
git merge --allow-unrelated-histories photos-desktop-main
git branch -D photos-desktop-main
git remote remove photos-desktop
git remote add cli https://github.com/ente-io/cli.git
git fetch cli main
git checkout -b cli-main cli/main
mkdir cli
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/cli$'` cli
git commit -m 'Move into cli/'
git checkout main
git merge --allow-unrelated-histories cli-main
git branch -D cli-main
git remote remove cli
git remote add docs https://github.com/ente-io/docs.git
git fetch docs main
git checkout -b docs-main docs/main
mkdir docs-1
git mv `find . -maxdepth 1 | grep -v -e '^\.$' -e '^\.\/.git$' -e '^\.\/docs-1$'` docs-1
git mv docs-1 docs
git commit -m 'Move into docs/'
git checkout main
git merge --allow-unrelated-histories docs-main
git branch -D docs-main
git remote remove docs
```
2024-03-01 07:31:41 +00:00
|
|
|
[<img height="42" src=".github/assets/play-store-badge.png">](https://play.google.com/store/apps/details?id=io.ente.auth)
|
|
|
|
[<img height="42" src=".github/assets/f-droid-badge.png">](https://f-droid.org/packages/io.ente.auth/)
|
|
|
|
[<img height="42" src=".github/assets/web-badge.svg">](https://auth.ente.io)
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
Want to get aboard the Ente hype train? Welcome along! Don't hesitate if you're
|
|
|
|
not a developer, there are many other important ways in which [you can
|
|
|
|
contribute](CONTRIBUTING.md).
|
|
|
|
|
|
|
|
## Support
|
|
|
|
|
|
|
|
We are never more than an email away. For the various ways to ask for help,
|
|
|
|
please see our [support guide](SUPPORT.md).
|
|
|
|
|
|
|
|
## Community
|
|
|
|
|
|
|
|
<img src=".github/assets/ente-ducky.png" width=200 alt="Ente's Mascot, Ducky,
|
|
|
|
inviting people to Ente's source code repository" />
|
|
|
|
|
|
|
|
Please visit our [community page](https://ente.io/community) for all the ways to
|
|
|
|
connect with the community.
|
|
|
|
|
|
|
|
[![Discord](https://img.shields.io/discord/948937918347608085?style=for-the-badge&logo=Discord&logoColor=white&label=Discord)](https://discord.gg/z2YVKkycX3)
|
|
|
|
[![Ente's Blog RSS](https://img.shields.io/badge/blog-rss-F88900?style=for-the-badge&logo=rss&logoColor=white)](https://ente.io/blog/rss.xml)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Security
|
|
|
|
|
|
|
|
If you believe you have found a security vulnerability, please responsibly
|
|
|
|
disclose it by emailing security@ente.io or [using this
|
|
|
|
link](https://github.com/ente-io/ente/security/advisories/new) instead of
|
|
|
|
opening a public issue. We will investigate all legitimate reports. To know
|
|
|
|
more, please see our [security policy](SECURITY.md).
|