Defry the fish (#125)

Co-authored-by: Luna <luna.dragon@suse.com>
Reviewed-on: #125
Co-authored-by: Luna D Dragon <lunarequest@nullrequest.com>
Co-committed-by: Luna D Dragon <lunarequest@nullrequest.com>
This commit is contained in:
Luna D Dragon 2023-08-21 16:14:53 +02:00 committed by Laura Hausmann
parent e3131e9b11
commit 91b8b7b76b
Signed by: zotan
GPG Key ID: D044E84C5BE01605
93 changed files with 364 additions and 373 deletions

View File

@ -1,4 +1,5 @@
Copyright 2023 Firefish Copyright 2023 The Iceshrimp contributors
Copyright 2023 The Firefish contributors
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@ -8,7 +8,7 @@ resources:
cpu: 1 cpu: 1
memory: 1Gi memory: 1Gi
firefish: iceshrimp:
domain: example.tld domain: example.tld
smtp: smtp:
from_address: noreply@example.tld from_address: noreply@example.tld

View File

@ -1,3 +1,3 @@
[weblate] [weblate]
url = https://hosted.weblate.org/api/ url = https://hosted.weblate.org/api/
translation = firefish/locales translation = iceshrimp/locales

View File

@ -2,7 +2,7 @@ pipeline:
publish-docker-latest: publish-docker-latest:
image: plugins/kaniko image: plugins/kaniko
settings: settings:
repo: thatonecalculator/firefish repo: iceshrimp/iceshrimp
tags: latest tags: latest
dockerfile: Dockerfile dockerfile: Dockerfile
username: username:

View File

@ -2,7 +2,7 @@ pipeline:
publish-docker-latest: publish-docker-latest:
image: plugins/kaniko image: plugins/kaniko
settings: settings:
repo: thatonecalculator/firefish repo: iceshrimp/iceshrimp
tags: rc tags: rc
dockerfile: Dockerfile dockerfile: Dockerfile
username: username:

View File

@ -2,7 +2,7 @@ pipeline:
publish-docker-tag: publish-docker-tag:
image: plugins/kaniko image: plugins/kaniko
settings: settings:
repo: thatonecalculator/firefish repo: iceshrimp/iceshrimp
# Uses the tag from git for the container tag # Uses the tag from git for the container tag
tags: ${CI_COMMIT_TAG} tags: ${CI_COMMIT_TAG}
dockerfile: Dockerfile dockerfile: Dockerfile

View File

@ -2,7 +2,7 @@ pipeline:
docker-build: docker-build:
image: plugins/kaniko image: plugins/kaniko
settings: settings:
repo: thatonecalculator/firefish repo: iceshrimp/iceshrimp
tags: test tags: test
dockerfile: Dockerfile dockerfile: Dockerfile
no_push: true no_push: true

View File

@ -1,6 +1,6 @@
# Changelog # Changelog
All changes from v13.0.0 onwards, for a list of differences read FIREFISH.md All changes from v13.0.0 onwards, for a list of differences read CHANGES_FROM_UPSTREAM.md
## [1.0.0] - 2023-07-19 ## [1.0.0] - 2023-07-19

View File

@ -85,7 +85,7 @@
- Undo renote button inside original note - Undo renote button inside original note
- Custom locales - Custom locales
- Obliteration of Ai-chan - Obliteration of Ai-chan
- Switch to [Firefish.js](https://codeberg.org/firefish/firefish.js) - Switch to [Iceshrimp.js](https://iceshrimp.dev/iceshrimp/iceshrimp/)
- Woozy mode ๐Ÿฅด - Woozy mode ๐Ÿฅด
- Improve blocking servers - Improve blocking servers
- Release notes - Release notes

View File

@ -60,10 +60,7 @@ representative at an online or offline event.
## Enforcement ## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at reported to the community leaders responsible for enforcement at `conduct@iceshrimp.dev`.
@thatonecalculator on Codeberg,
`@kainoa@firefish.social` on the Fediverse,
or kainoa@t1c.dev via email.
All complaints will be reviewed and investigated promptly and fairly. All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the All community leaders are obligated to respect the privacy and security of the

View File

@ -1,26 +1,24 @@
# Contribution guide # Contribution guide
We're glad you're interested in contributing Firefish! In this document you will find the information you need to contribute to the project. We're glad you're interested in contributing Iceshrimp! In this document you will find the information you need to contribute to the project.
## Translation (i18n) ## Translation (i18n)
Firefish uses [Weblate](hhttps://hosted.weblate.org/engage/firefish/) for translation and internationalization management. Iceshrimp uses [Weblate](https://translate.iceshrimp.dev/) for translation and internationalization management.
If your language is not listed in Weblate, please open an issue. If your language is not listed in Weblate, please open an issue.
You can contribute without knowing how to code by helping translate here: You can contribute without knowing how to code by helping translate here:
[![Translation status](https://hosted.weblate.org/widgets/firefish/-/287x66-grey.png)](https://hosted.weblate.org/engage/firefish/) [![Translation status](https://translate.iceshrimp.dev/widgets/iceshrimp/-/287x66-grey.png)](https://translate.iceshrimp.dev/)
[![Translation bars](https://hosted.weblate.org/widgets/firefish/-/multi-auto.svg)](https://hosted.weblate.org/engage/firefish/) [![Translation bars](https://translate.iceshrimp.dev/widgets/iceshrimp/-/multi-auto.svg)](https://translate.iceshrimp.dev/)
## Roadmap
See [FIREFISH.md](./FIREFISH.md)
## Issues ## Issues
Before creating an issue, please check the following: Before creating an issue, please check the following:
- To avoid duplication, please search for similar issues before creating a new issue. - To avoid duplication, please search for similar issues before creating a new issue.
- Do not use Issues to ask questions or troubleshooting. - Do not use Issues to ask questions or troubleshooting.
- Issues should only be used to feature requests, suggestions, and bug tracking. - Issues should only be used to feature requests, suggestions, and bug tracking.
- Please ask questions or troubleshooting in the [Matrix room](https://matrix.to/#/#firefish:matrix.fedibird.com). - Please ask questions or troubleshooting in the [Matrix room](https://matrix.to/#/#iceshrimp-dev:161.rocks).
> **Warning** > **Warning**
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged. > Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.

View File

@ -18,7 +18,7 @@ And are distributed under The Apache License, Version 2.0, you should have recei
--- ---
Firefish includes several third-party open-source softwares and software libraries. Iceshrimp includes several third-party open-source softwares and software libraries.
RsaSignature2017 implementation by Transmute Industries Inc RsaSignature2017 implementation by Transmute Industries Inc
License: MIT License: MIT

View File

@ -1,16 +1,11 @@
# Reporting Security Issues # Reporting Security Issues
## Minor Security Issues
If you discover a minor security issue in Firefish, please report it by sending an
email to [kainoa@t1c.dev](mailto:kainoa@t1c.dev).
## High Security Issues ## High Security Issues
If you discover a security issue, which is so high risk, that too much is affected by it, please dont send it over unencrypted communication. You can share your PGP keys with us using kainoa@t1c.dev and after we established a secure communication, send it over E-Mail, or message us using matrix' encrypted private messages at @t1c:matrix.fedibird.com or @cleo:tchncs.de If you discover a security issue, which is so high risk, that too much is affected by it, please dont send it over unencrypted communication. You can share your PGP keys with us using security@iceshrimp.dev and after we established a secure communication, send it over E-Mail, or message us using matrix' encrypted private messages at @zotan:161.rocks
This will allow us to assess the risk, and make a fix available before we add a This will allow us to assess the risk, and make a fix available before we add a
bug report to the Codeberg repository. bug report to the Codeberg repository.
Thanks for helping make Firefish safe for everyone. Thanks for helping make Iceshrimp safe for everyone.

View File

@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: firefish name: iceshrimp
description: A fun, new, open way to experience social media https://joinfirefish.org description: A fun, new, open way to experience social media https://iceshrimp.dev
# A chart can be either an 'application' or a 'library' chart. # A chart can be either an 'application' or a 'library' chart.
# #

View File

@ -1,8 +1,8 @@
# firefish # iceshrimp
![Version: 0.1.2](https://img.shields.io/badge/Version-0.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: rc](https://img.shields.io/badge/AppVersion-rc-informational?style=flat-square) ![Version: 0.1.2](https://img.shields.io/badge/Version-0.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: rc](https://img.shields.io/badge/AppVersion-rc-informational?style=flat-square)
A fun, new, open way to experience social media https://joinfirefish.org A fun, new, open way to experience social media https://iceshrimp.dev
## Requirements ## Requirements
@ -21,39 +21,39 @@ A fun, new, open way to experience social media https://joinfirefish.org
| autoscaling.maxReplicas | int | `100` | | | autoscaling.maxReplicas | int | `100` | |
| autoscaling.minReplicas | int | `1` | | | autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `80` | | | autoscaling.targetCPUUtilizationPercentage | int | `80` | |
| firefish.allowedPrivateNetworks | list | `[]` | If you want to allow firefish to connect to private ips, enter the cidrs here. | | iceshrimp.allowedPrivateNetworks | list | `[]` | If you want to allow iceshrimp to connect to private ips, enter the cidrs here. |
| firefish.deepl.authKey | string | `""` | | | iceshrimp.deepl.authKey | string | `""` | |
| firefish.deepl.isPro | bool | `false` | | | iceshrimp.deepl.isPro | bool | `false` | |
| firefish.deepl.managed | bool | `false` | | | iceshrimp.deepl.managed | bool | `false` | |
| firefish.domain | string | `"firefish.local"` | | | iceshrimp.domain | string | `"iceshrimp.local"` | |
| firefish.isManagedHosting | bool | `true` | | | iceshrimp.isManagedHosting | bool | `true` | |
| firefish.libreTranslate.apiKey | string | `""` | | | iceshrimp.libreTranslate.apiKey | string | `""` | |
| firefish.libreTranslate.apiUrl | string | `""` | | | iceshrimp.libreTranslate.apiUrl | string | `""` | |
| firefish.libreTranslate.managed | bool | `false` | | | iceshrimp.libreTranslate.managed | bool | `false` | |
| firefish.objectStorage.access_key | string | `""` | | | iceshrimp.objectStorage.access_key | string | `""` | |
| firefish.objectStorage.access_secret | string | `""` | | | iceshrimp.objectStorage.access_secret | string | `""` | |
| firefish.objectStorage.baseUrl | string | `""` | | | iceshrimp.objectStorage.baseUrl | string | `""` | |
| firefish.objectStorage.bucket | string | `""` | | | iceshrimp.objectStorage.bucket | string | `""` | |
| firefish.objectStorage.endpoint | string | `""` | | | iceshrimp.objectStorage.endpoint | string | `""` | |
| firefish.objectStorage.managed | bool | `true` | | | iceshrimp.objectStorage.managed | bool | `true` | |
| firefish.objectStorage.prefix | string | `"files"` | | | iceshrimp.objectStorage.prefix | string | `"files"` | |
| firefish.objectStorage.region | string | `""` | | | iceshrimp.objectStorage.region | string | `""` | |
| firefish.reservedUsernames[0] | string | `"root"` | | | iceshrimp.reservedUsernames[0] | string | `"root"` | |
| firefish.reservedUsernames[1] | string | `"admin"` | | | iceshrimp.reservedUsernames[1] | string | `"admin"` | |
| firefish.reservedUsernames[2] | string | `"administrator"` | | | iceshrimp.reservedUsernames[2] | string | `"administrator"` | |
| firefish.reservedUsernames[3] | string | `"me"` | | | iceshrimp.reservedUsernames[3] | string | `"me"` | |
| firefish.reservedUsernames[4] | string | `"system"` | | | iceshrimp.reservedUsernames[4] | string | `"system"` | |
| firefish.smtp.from_address | string | `"notifications@example.com"` | | | iceshrimp.smtp.from_address | string | `"notifications@example.com"` | |
| firefish.smtp.login | string | `""` | | | iceshrimp.smtp.login | string | `""` | |
| firefish.smtp.managed | bool | `true` | | | iceshrimp.smtp.managed | bool | `true` | |
| firefish.smtp.password | string | `""` | | | iceshrimp.smtp.password | string | `""` | |
| firefish.smtp.port | int | `587` | | | iceshrimp.smtp.port | int | `587` | |
| firefish.smtp.server | string | `"smtp.mailgun.org"` | | | iceshrimp.smtp.server | string | `"smtp.mailgun.org"` | |
| firefish.smtp.useImplicitSslTls | bool | `false` | | | iceshrimp.smtp.useImplicitSslTls | bool | `false` | |
| elasticsearch | object | `{"auth":{},"enabled":false,"hostname":"","port":9200,"ssl":false}` | https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters | | elasticsearch | object | `{"auth":{},"enabled":false,"hostname":"","port":9200,"ssl":false}` | https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters |
| fullnameOverride | string | `""` | | | fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | | | image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"docker.io/thatonecalculator/firefish"` | | | image.repository | string | `"iceshrimp.dev/iceshrimp/iceshrimp"` | |
| image.tag | string | `""` | | | image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | | | imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | | | ingress.annotations | object | `{}` | |
@ -67,9 +67,9 @@ A fun, new, open way to experience social media https://joinfirefish.org
| nodeSelector | object | `{}` | | | nodeSelector | object | `{}` | |
| podAnnotations | object | `{}` | | | podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | | | podSecurityContext | object | `{}` | |
| postgresql.auth.database | string | `"firefish_production"` | | | postgresql.auth.database | string | `"iceshrimp_production"` | |
| postgresql.auth.password | string | `""` | | | postgresql.auth.password | string | `""` | |
| postgresql.auth.username | string | `"firefish"` | | | postgresql.auth.username | string | `"iceshrimp"` | |
| postgresql.enabled | bool | `true` | disable if you want to use an existing db; in which case the values below must match those of that external postgres instance | | postgresql.enabled | bool | `true` | disable if you want to use an existing db; in which case the values below must match those of that external postgres instance |
| redis.auth.password | string | `""` | you must set a password; the password generated by the redis chart will be rotated on each upgrade: | | redis.auth.password | string | `""` | you must set a password; the password generated by the redis chart will be rotated on each upgrade: |
| redis.enabled | bool | `true` | | | redis.enabled | bool | `true` | |

View File

@ -6,16 +6,16 @@
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- else if contains "NodePort" .Values.service.type }} {{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "firefish.fullname" . }}) export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "iceshrimp.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }} {{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available. NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "firefish.fullname" . }}' You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "iceshrimp.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "firefish.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "iceshrimp.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }} echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }} {{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "firefish.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "iceshrimp.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application" echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT

View File

@ -1,7 +1,7 @@
{{/* {{/*
Expand the name of the chart. Expand the name of the chart.
*/}} */}}
{{- define "firefish.name" -}} {{- define "iceshrimp.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
@ -10,7 +10,7 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name. If release name contains chart name it will be used as a full name.
*/}} */}}
{{- define "firefish.fullname" -}} {{- define "iceshrimp.fullname" -}}
{{- if .Values.fullnameOverride }} {{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }} {{- else }}
@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
{{/* {{/*
Create chart name and version as used by the chart label. Create chart name and version as used by the chart label.
*/}} */}}
{{- define "firefish.chart" -}} {{- define "iceshrimp.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
Common labels Common labels
*/}} */}}
{{- define "firefish.labels" -}} {{- define "iceshrimp.labels" -}}
helm.sh/chart: {{ include "firefish.chart" . }} helm.sh/chart: {{ include "iceshrimp.chart" . }}
{{ include "firefish.selectorLabels" . }} {{ include "iceshrimp.selectorLabels" . }}
{{- if .Chart.AppVersion }} {{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }} {{- end }}
@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/* {{/*
Selector labels Selector labels
*/}} */}}
{{- define "firefish.selectorLabels" -}} {{- define "iceshrimp.selectorLabels" -}}
app.kubernetes.io/name: {{ include "firefish.name" . }} app.kubernetes.io/name: {{ include "iceshrimp.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }} {{- end }}
{{/* {{/*
Create the name of the service account to use Create the name of the service account to use
*/}} */}}
{{- define "firefish.serviceAccountName" -}} {{- define "iceshrimp.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }} {{- if .Values.serviceAccount.create }}
{{- default (include "firefish.fullname" .) .Values.serviceAccount.name }} {{- default (include "iceshrimp.fullname" .) .Values.serviceAccount.name }}
{{- else }} {{- else }}
{{- default "default" .Values.serviceAccount.name }} {{- default "default" .Values.serviceAccount.name }}
{{- end }} {{- end }}
@ -65,31 +65,31 @@ Create the name of the service account to use
Create a default fully qualified name for dependent services. Create a default fully qualified name for dependent services.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}} */}}
{{- define "firefish.elasticsearch.fullname" -}} {{- define "iceshrimp.elasticsearch.fullname" -}}
{{- printf "%s-%s" .Release.Name "elasticsearch" | trunc 63 | trimSuffix "-" -}} {{- printf "%s-%s" .Release.Name "elasticsearch" | trunc 63 | trimSuffix "-" -}}
{{- end -}} {{- end -}}
{{- define "firefish.redis.fullname" -}} {{- define "iceshrimp.redis.fullname" -}}
{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} {{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}}
{{- end -}} {{- end -}}
{{- define "firefish.postgresql.fullname" -}} {{- define "iceshrimp.postgresql.fullname" -}}
{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}} {{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}}
{{- end -}} {{- end -}}
{{/* {{/*
config/default.yml content config/default.yml content
*/}} */}}
{{- define "firefish.configDir.default.yml" -}} {{- define "iceshrimp.configDir.default.yml" -}}
#โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” #โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
# Firefish configuration # iceshrimp configuration
#โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” #โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
# โ”Œโ”€โ”€โ”€โ”€โ”€โ” # โ”Œโ”€โ”€โ”€โ”€โ”€โ”
#โ”€โ”€โ”€โ”˜ URL โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ #โ”€โ”€โ”€โ”˜ URL โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
# Final accessible URL seen by a user. # Final accessible URL seen by a user.
url: "https://{{ .Values.firefish.domain }}/" url: "https://{{ .Values.iceshrimp.domain }}/"
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE # ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# URL SETTINGS AFTER THAT! # URL SETTINGS AFTER THAT!
@ -118,7 +118,7 @@ port: 3000
db: db:
{{- if .Values.postgresql.enabled }} {{- if .Values.postgresql.enabled }}
host: {{ template "firefish.postgresql.fullname" . }} host: {{ template "iceshrimp.postgresql.fullname" . }}
port: '5432' port: '5432'
{{- else }} {{- else }}
host: {{ .Values.postgresql.postgresqlHostname }} host: {{ .Values.postgresql.postgresqlHostname }}
@ -146,7 +146,7 @@ db:
redis: redis:
{{- if .Values.redis.enabled }} {{- if .Values.redis.enabled }}
host: {{ template "firefish.redis.fullname" . }}-master host: {{ template "iceshrimp.redis.fullname" . }}-master
{{- else }} {{- else }}
host: {{ required "When the redis chart is disabled .Values.redis.hostname is required" .Values.redis.hostname }} host: {{ required "When the redis chart is disabled .Values.redis.hostname is required" .Values.redis.hostname }}
{{- end }} {{- end }}
@ -218,7 +218,7 @@ id: 'aid'
# Reserved usernames that only the administrator can register with # Reserved usernames that only the administrator can register with
reservedUsernames: reservedUsernames:
{{ .Values.firefish.reservedUsernames | toYaml }} {{ .Values.iceshrimp.reservedUsernames | toYaml }}
# Whether disable HSTS # Whether disable HSTS
#disableHsts: true #disableHsts: true
@ -266,7 +266,7 @@ reservedUsernames:
#proxyRemoteFiles: true #proxyRemoteFiles: true
allowedPrivateNetworks: allowedPrivateNetworks:
{{ .Values.firefish.allowedPrivateNetworks | toYaml }} {{ .Values.iceshrimp.allowedPrivateNetworks | toYaml }}
# TWA # TWA
#twa: #twa:
@ -286,34 +286,34 @@ allowedPrivateNetworks:
# If you mess this up, that's on you, you've been warned... # If you mess this up, that's on you, you've been warned...
#maxUserSignups: 100 #maxUserSignups: 100
isManagedHosting: {{ .Values.firefish.isManagedHosting }} isManagedHosting: {{ .Values.iceshrimp.isManagedHosting }}
deepl: deepl:
managed: {{ .Values.firefish.deepl.managed }} managed: {{ .Values.iceshrimp.deepl.managed }}
authKey: {{ .Values.firefish.deepl.authKey | quote}} authKey: {{ .Values.iceshrimp.deepl.authKey | quote}}
isPro: {{ .Values.firefish.deepl.isPro }} isPro: {{ .Values.iceshrimp.deepl.isPro }}
libreTranslate: libreTranslate:
managed: {{ .Values.firefish.libreTranslate.managed }} managed: {{ .Values.iceshrimp.libreTranslate.managed }}
apiUrl: {{ .Values.firefish.libreTranslate.apiUrl | quote }} apiUrl: {{ .Values.iceshrimp.libreTranslate.apiUrl | quote }}
apiKey: {{ .Values.firefish.libreTranslate.apiKey | quote }} apiKey: {{ .Values.iceshrimp.libreTranslate.apiKey | quote }}
email: email:
managed: {{ .Values.firefish.smtp.managed }} managed: {{ .Values.iceshrimp.smtp.managed }}
address: {{ .Values.firefish.smtp.from_address | quote }} address: {{ .Values.iceshrimp.smtp.from_address | quote }}
host: {{ .Values.firefish.smtp.server | quote }} host: {{ .Values.iceshrimp.smtp.server | quote }}
port: {{ .Values.firefish.smtp.port }} port: {{ .Values.iceshrimp.smtp.port }}
user: {{ .Values.firefish.smtp.login | quote }} user: {{ .Values.iceshrimp.smtp.login | quote }}
pass: {{ .Values.firefish.smtp.password | quote }} pass: {{ .Values.iceshrimp.smtp.password | quote }}
useImplicitSslTls: {{ .Values.firefish.smtp.useImplicitSslTls }} useImplicitSslTls: {{ .Values.iceshrimp.smtp.useImplicitSslTls }}
objectStorage: objectStorage:
managed: {{ .Values.firefish.objectStorage.managed }} managed: {{ .Values.iceshrimp.objectStorage.managed }}
baseUrl: {{ .Values.firefish.objectStorage.baseUrl | quote }} baseUrl: {{ .Values.iceshrimp.objectStorage.baseUrl | quote }}
bucket: {{ .Values.firefish.objectStorage.bucket | quote }} bucket: {{ .Values.iceshrimp.objectStorage.bucket | quote }}
prefix: {{ .Values.firefish.objectStorage.prefix | quote }} prefix: {{ .Values.iceshrimp.objectStorage.prefix | quote }}
endpoint: {{ .Values.firefish.objectStorage.endpoint | quote }} endpoint: {{ .Values.iceshrimp.objectStorage.endpoint | quote }}
region: {{ .Values.firefish.objectStorage.region | quote }} region: {{ .Values.iceshrimp.objectStorage.region | quote }}
accessKey: {{ .Values.firefish.objectStorage.access_key | quote }} accessKey: {{ .Values.iceshrimp.objectStorage.access_key | quote }}
secretKey: {{ .Values.firefish.objectStorage.access_secret | quote }} secretKey: {{ .Values.iceshrimp.objectStorage.access_secret | quote }}
useSsl: true useSsl: true
connnectOverProxy: false connnectOverProxy: false
setPublicReadOnUpload: true setPublicReadOnUpload: true

View File

@ -1,16 +1,16 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "firefish.fullname" . }} name: {{ include "iceshrimp.fullname" . }}
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
spec: spec:
{{- if not .Values.autoscaling.enabled }} {{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }} replicas: {{ .Values.replicaCount }}
{{- end }} {{- end }}
selector: selector:
matchLabels: matchLabels:
{{- include "firefish.selectorLabels" . | nindent 6 }} {{- include "iceshrimp.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
annotations: annotations:
@ -19,19 +19,19 @@ spec:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
labels: labels:
{{- include "firefish.selectorLabels" . | nindent 8 }} {{- include "iceshrimp.selectorLabels" . | nindent 8 }}
spec: spec:
{{- with .Values.imagePullSecrets }} {{- with .Values.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
serviceAccountName: {{ include "firefish.serviceAccountName" . }} serviceAccountName: {{ include "iceshrimp.serviceAccountName" . }}
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
volumes: volumes:
- name: config-volume - name: config-volume
secret: secret:
secretName: {{ template "firefish.fullname" . }}-config secretName: {{ template "iceshrimp.fullname" . }}-config
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
@ -47,7 +47,7 @@ spec:
value: "production" value: "production"
volumeMounts: volumeMounts:
- name: config-volume - name: config-volume
mountPath: /firefish/.config mountPath: /iceshrimp/.config
ports: ports:
- name: http - name: http
containerPort: 3000 containerPort: 3000

View File

@ -2,14 +2,14 @@
apiVersion: autoscaling/v2beta1 apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
metadata: metadata:
name: {{ include "firefish.fullname" . }} name: {{ include "iceshrimp.fullname" . }}
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
spec: spec:
scaleTargetRef: scaleTargetRef:
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
name: {{ include "firefish.fullname" . }} name: {{ include "iceshrimp.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }} minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }} maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics: metrics:

View File

@ -1,5 +1,5 @@
{{- if .Values.ingress.enabled -}} {{- if .Values.ingress.enabled -}}
{{- $fullName := include "firefish.fullname" . -}} {{- $fullName := include "iceshrimp.fullname" . -}}
{{- $svcPort := .Values.service.port -}} {{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
@ -17,7 +17,7 @@ kind: Ingress
metadata: metadata:
name: {{ $fullName }} name: {{ $fullName }}
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }} {{- with .Values.ingress.annotations }}
annotations: annotations:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}

View File

@ -1,9 +1,9 @@
apiVersion: batch/v1 apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: {{ include "firefish.fullname" . }}-db-migrate name: {{ include "iceshrimp.fullname" . }}-db-migrate
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
annotations: annotations:
"helm.sh/hook": post-install,pre-upgrade "helm.sh/hook": post-install,pre-upgrade
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
@ -11,7 +11,7 @@ metadata:
spec: spec:
template: template:
metadata: metadata:
name: {{ include "firefish.fullname" . }}-db-migrate name: {{ include "iceshrimp.fullname" . }}-db-migrate
{{- with .Values.podAnnotations }} {{- with .Values.podAnnotations }}
annotations: annotations:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
@ -22,13 +22,13 @@ spec:
imagePullSecrets: imagePullSecrets:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
serviceAccountName: {{ include "firefish.serviceAccountName" . }} serviceAccountName: {{ include "iceshrimp.serviceAccountName" . }}
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
volumes: volumes:
- name: config-volume - name: config-volume
secret: secret:
secretName: {{ template "firefish.fullname" . }}-config secretName: {{ template "iceshrimp.fullname" . }}-config
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
@ -44,7 +44,7 @@ spec:
value: "production" value: "production"
volumeMounts: volumeMounts:
- name: config-volume - name: config-volume
mountPath: /firefish/.config mountPath: /iceshrimp/.config
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}

View File

@ -1,9 +1,9 @@
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: {{ template "firefish.fullname" . }}-config name: {{ template "iceshrimp.fullname" . }}-config
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
type: Opaque type: Opaque
data: data:
default.yml: {{ include "firefish.configDir.default.yml" . | b64enc }} default.yml: {{ include "iceshrimp.configDir.default.yml" . | b64enc }}

View File

@ -1,9 +1,9 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "firefish.fullname" . }} name: {{ include "iceshrimp.fullname" . }}
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
spec: spec:
type: {{ .Values.service.type }} type: {{ .Values.service.type }}
ports: ports:
@ -12,4 +12,4 @@ spec:
protocol: TCP protocol: TCP
name: http name: http
selector: selector:
{{- include "firefish.selectorLabels" . | nindent 4 }} {{- include "iceshrimp.selectorLabels" . | nindent 4 }}

View File

@ -2,9 +2,9 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ include "firefish.serviceAccountName" . }} name: {{ include "iceshrimp.serviceAccountName" . }}
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }} {{- with .Values.serviceAccount.annotations }}
annotations: annotations:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}

View File

@ -1,9 +1,9 @@
apiVersion: v1 apiVersion: v1
kind: Pod kind: Pod
metadata: metadata:
name: "{{ include "firefish.fullname" . }}-test-connection" name: "{{ include "iceshrimp.fullname" . }}-test-connection"
labels: labels:
{{- include "firefish.labels" . | nindent 4 }} {{- include "iceshrimp.labels" . | nindent 4 }}
annotations: annotations:
"helm.sh/hook": test "helm.sh/hook": test
spec: spec:
@ -11,5 +11,5 @@ spec:
- name: wget - name: wget
image: busybox image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "firefish.fullname" . }}:{{ .Values.service.port }}'] args: ['{{ include "iceshrimp.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never restartPolicy: Never

View File

@ -1,18 +1,18 @@
# Default values for firefish. # Default values for iceshrimp.
# This is a YAML-formatted file. # This is a YAML-formatted file.
# Declare variables to be passed into your templates. # Declare variables to be passed into your templates.
replicaCount: 1 replicaCount: 1
image: image:
repository: docker.io/thatonecalculator/firefish repository: docker.io/thatonecalculator/iceshrimp
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion. # Overrides the image tag whose default is the chart appVersion.
tag: "" tag: ""
firefish: iceshrimp:
isManagedHosting: true isManagedHosting: true
domain: firefish.local domain: iceshrimp.local
deepl: deepl:
managed: false managed: false
@ -43,7 +43,7 @@ firefish:
endpoint: "" # e.g. "nyc3.digitaloceanspaces.com:443" endpoint: "" # e.g. "nyc3.digitaloceanspaces.com:443"
region: "" # e.g. "nyc3" region: "" # e.g. "nyc3"
# -- If you want to allow firefish to connect to private ips, enter the cidrs here. # -- If you want to allow iceshrimp to connect to private ips, enter the cidrs here.
allowedPrivateNetworks: [] allowedPrivateNetworks: []
# - "10.0.0.0/8" # - "10.0.0.0/8"
@ -62,8 +62,8 @@ postgresql:
# postgresqlHostname: preexisting-postgresql # postgresqlHostname: preexisting-postgresql
# postgresqlPort: 5432 # postgresqlPort: 5432
auth: auth:
database: firefish_production database: iceshrimp_production
username: firefish username: iceshrimp
# you must set a password; the password generated by the postgresql chart will # you must set a password; the password generated by the postgresql chart will
# be rotated on each upgrade: # be rotated on each upgrade:
# https://github.com/bitnami/charts/tree/master/bitnami/postgresql#upgrade # https://github.com/bitnami/charts/tree/master/bitnami/postgresql#upgrade

View File

@ -4,7 +4,7 @@
# changelog header # changelog header
header = """ header = """
# Changelog\n # Changelog\n
All changes from v13.0.0 onwards, for a list of differences read FIREFISH.md\n All changes from v13.0.0 onwards, for a list of differences read CHANGES_FROM_UPSTREAM.md\n
""" """
# template for the changelog body # template for the changelog body
# https://tera.netlify.app/docs/#introduction # https://tera.netlify.app/docs/#introduction

View File

@ -1,4 +1,4 @@
Copyright 2023 Firefish Copyright 2023 The Iceshrimp contributors
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@ -2,9 +2,9 @@ version: "3"
services: services:
web: web:
image: docker.io/thatonecalculator/firefish image: iceshrimp.dev/iceshrimp/iceshrimp:dev
build: .. build: ..
container_name: firefish_web container_name: iceshrimp_web
restart: always restart: always
depends_on: depends_on:
- db - db
@ -16,12 +16,12 @@ services:
- network - network
# - web # - web
volumes: volumes:
- ../files:/firefish/files - ../files:/iceshrimp/files
- ../.config:/firefish/.config:ro - ../.config:/iceshrimp/.config:ro
redis: redis:
restart: always restart: always
container_name: firefish_redis container_name: iceshrimp_redis
image: docker.io/redis:7.0-alpine image: docker.io/redis:7.0-alpine
networks: networks:
- network - network
@ -31,7 +31,7 @@ services:
db: db:
restart: always restart: always
image: docker.io/postgres:12.2-alpine image: docker.io/postgres:12.2-alpine
container_name: firefish_db container_name: iceshrimp_db
networks: networks:
- network - network
env_file: env_file:

View File

@ -1,5 +1,5 @@
# API Documentation # API Documentation
You can find interactive API documentation at any Firefish instance. https://firefish.social/api-doc You can find interactive API documentation at any Iceshrimp instance. https://iceshrimp.social/api-doc
You can also find auto-generated documentation for iceshrimp-js [here](../packages/iceshrimp-js/markdown/iceshrimp-js.md). You can also find auto-generated documentation for iceshrimp-js [here](../packages/iceshrimp-js/markdown/iceshrimp-js.md).

View File

@ -1,7 +1,7 @@
# ๐ŸŒŽ Firefish Developer Docs # ๐ŸŒŽ Iceshrimp Developer Docs
## Nix Dev Environment ## Nix Dev Environment
The Firefish repo comes with a Nix-based shell environment to help make development as easy as possible! The Iceshrimp repo comes with a Nix-based shell environment to help make development as easy as possible!
Please note, however, that this environment will not work on Windows outside of a WSL2 environment. Please note, however, that this environment will not work on Windows outside of a WSL2 environment.
@ -10,12 +10,12 @@ Please note, however, that this environment will not work on Windows outside of
- Installed the [Nix Package Manager](https://nixos.org/download.html) (use the comman on their website) - Installed the [Nix Package Manager](https://nixos.org/download.html) (use the comman on their website)
- Installed [direnv](https://direnv.net/docs/installation.html) and added its hook to your shell. (package manager) - Installed [direnv](https://direnv.net/docs/installation.html) and added its hook to your shell. (package manager)
Once the repo is cloned to your computer, follow these next few steps inside the Firefish folder: Once the repo is cloned to your computer, follow these next few steps inside the Iceshrimp folder:
- Run `direnv allow`. This will build the environment and install all needed tools. - Run `direnv allow`. This will build the environment and install all needed tools.
- Run `install-deps`, then `prepare-config`, to install the node dependencies and prepare the needed config files. - Run `install-deps`, then `prepare-config`, to install the node dependencies and prepare the needed config files.
- In a second terminal, run `devenv up`. This will spawn a **Redis** server, a **Postgres** server, and the **Firefish** server in dev mode. - In a second terminal, run `devenv up`. This will spawn a **Redis** server, a **Postgres** server, and the **Iceshrimp** server in dev mode.
- Once you see the Firefish banner printed in your second terminal, run `migrate` in the first. - Once you see the Iceshrimp banner printed in your second terminal, run `migrate` in the first.
- Once migrations finish, open http://localhost:3000 in your web browser. - Once migrations finish, open http://localhost:3000 in your web browser.
- You should now see the admin user creation screen! - You should now see the admin user creation screen!
@ -40,7 +40,7 @@ delete `flake.lock`, or better, run `nix flake update --extra-experimental-featu
after that, run `direnv rebuild` after that, run `direnv rebuild`
if there are any errors, you might have to change `flake.nix` if there are any errors, you might have to change `flake.nix`
(because the available options can change between versions - consider getting support in [the matrix channel](https://matrix.to/#/#firefish:matrix.fedibird.com)) (because the available options can change between versions - consider getting support in [the matrix channel](https://matrix.to/#/%23iceshrimp-dev:161.rocks))
### after changing a node version ### after changing a node version
in my case, i had to change the node version from 19, to 18 in my case, i had to change the node version from 19, to 18
@ -66,18 +66,18 @@ devenv up may take a looong time. (some say this is fake news, maybe it was bad
do not get spooked by this error: do not get spooked by this error:
``` ```
> firefish@14.0.0-dev32 start /mnt/.../firefish > iceshrimp@14.0.0-dev32 start /mnt/.../iceshrimp
> pnpm --filter backend run start > pnpm --filter backend run start
> backend@ start /mnt/.../firefish/packages/backend > backend@ start /mnt/.../iceshrimp/packages/backend
> pnpm node ./built/index.js > pnpm node ./built/index.js
node:internal/modules/cjs/loader:1078 node:internal/modules/cjs/loader:1078
throw err; throw err;
^ ^
Error: Cannot find module '/mnt/.../firefish/packages/backend/built/index.js' Error: Cannot find module '/mnt/.../iceshrimp/packages/backend/built/index.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15) at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15)
at Module._load (node:internal/modules/cjs/loader:920:27) at Module._load (node:internal/modules/cjs/loader:920:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
@ -88,7 +88,7 @@ Error: Cannot find module '/mnt/.../firefish/packages/backend/built/index.js'
Node.js v18.16.0 Node.js v18.16.0
undefined undefined
/mnt/.../firefish/packages/backend: /mnt/.../iceshrimp/packages/backend:
โ€‰ERR_PNPM_RECURSIVE_RUN_FIRST_FAILโ€‰ backend@ start: `pnpm node ./built/index.js` โ€‰ERR_PNPM_RECURSIVE_RUN_FIRST_FAILโ€‰ backend@ start: `pnpm node ./built/index.js`
Exit status 1 Exit status 1
โ€‰ELIFECYCLEโ€‰ Command failed with exit code 1. โ€‰ELIFECYCLEโ€‰ Command failed with exit code 1.
@ -97,7 +97,7 @@ Exit status 1
the script is designed to constantly try to start the server, while the build is still running. the script is designed to constantly try to start the server, while the build is still running.
this just means that the build isn't finished yet. this just means that the build isn't finished yet.
at some point you should see a banner that says "Firefish" in big letters - at some point you should see a banner that says "Iceshrimp" in big letters -
then you're good to go and can run `migrate` (in another terminal)! then you're good to go and can run `migrate` (in another terminal)!
if you don't see the banner, if you don't see the banner,

View File

@ -1,14 +1,14 @@
# ๐Ÿณ Running a Firefish server with Docker # ๐Ÿณ Running a Iceshrimp server with Docker
## Pre-built docker container ## Pre-built docker container
[thatonecalculator/firefish](https://hub.docker.com/r/thatonecalculator/firefish) [iceshrimp/iceshrimp](iceshrimp.dev/iceshrimp/iceshrimp)
## `docker-compose` ## `docker-compose`
There is a `docker-compose.yml` in the root of the project that you can use to build the container from source There is a `docker-compose.yml` in the root of the project that you can use to build the container from source
- .config/docker.env (**db config settings**) - .config/docker.env (**db config settings**)
- .config/default.yml (**firefish server settings**) - .config/default.yml (**Iceshrimp server settings**)
## Configuring ## Configuring
@ -21,22 +21,22 @@ Rename the files:
then edit them according to your environment. then edit them according to your environment.
You can configure `docker.env` with anything you like, but you will have to pay attention to the `default.yml` file: You can configure `docker.env` with anything you like, but you will have to pay attention to the `default.yml` file:
- `url` should be set to the URL you will be hosting the web interface for the server at. - `url` should be set to the URL you will be hosting the web interface for the server at.
- `host`, `db`, `user`, `pass` will have to be configured in the `PostgreSQL configuration` section - `host` is the name of the postgres container (eg: *firefish_db_1*), and the others should match your `docker.env`. - `host`, `db`, `user`, `pass` will have to be configured in the `PostgreSQL configuration` section - `host` is the name of the postgres container (eg: *iceshrimp_db_1*), and the others should match your `docker.env`.
- `host`will need to be configured in the *Redis configuration* section - it is the name of the redis container (eg: *firefish_redis_1*) - `host`will need to be configured in the *Redis configuration* section - it is the name of the redis container (eg: *iceshrimp_redis_1*)
- `auth` will need to be configured in the *Sonic* section - cannot be the default `SecretPassword` - `auth` will need to be configured in the *Sonic* section - cannot be the default `SecretPassword`
Everything else can be left as-is. Everything else can be left as-is.
## Running docker-compose ## Running docker-compose
The [prebuilt container for firefish](https://hub.docker.com/r/thatonecalculator/firefish) is fairly large, and may take a few minutes to download and extract using docker. The [prebuilt container for iceshrimp](https://iceshrimp.dev/iceshrimp/-/packages/container/iceshrimp/latest) is fairly large, and may take a few minutes to download and extract using docker.
Copy `docker-compose.yml` and the `config/` to a directory, then run the **docker-compose** command: Copy `docker-compose.yml` and the `config/` to a directory, then run the **docker-compose** command:
`docker-compose up -d`. `docker-compose up -d`.
NOTE: This will take some time to come fully online, even after download and extracting the container images, and it may emit some error messages before completing successfully. Specifically, the `db` container needs to initialize and so isn't available to the `web` container right away. Only once the `db` container comes online does the `web` container start building and initializing the firefish tables. NOTE: This will take some time to come fully online, even after download and extracting the container images, and it may emit some error messages before completing successfully. Specifically, the `db` container needs to initialize and so isn't available to the `web` container right away. Only once the `db` container comes online does the `web` container start building and initializing the Iceshrimp tables.
Once the server is up you can use a web browser to access the web interface at `http://serverip:3000` (where `serverip` is the IP of the server you are running the firefish server on). Once the server is up you can use a web browser to access the web interface at `http://serverip:3000` (where `serverip` is the IP of the server you are running the Iceshrimp server on).
## Docker for development ## Docker for development

View File

@ -1,7 +1,7 @@
# Running a Firefish server with Kubernetes and Helm # Running a iceshrimp server with Kubernetes and Helm
This is a [Helm](https://helm.sh/) chart directory in the root of the project This is a [Helm](https://helm.sh/) chart directory in the root of the project
that you can use to deploy firefish to a Kubernetes cluster that you can use to deploy iceshrimp to a Kubernetes cluster
## Deployment ## Deployment
@ -17,29 +17,29 @@ helm dependency list $dir 2> /dev/null | tail +2 | head -n -1 | awk '{ print "he
cd ../ cd ../
``` ```
3. Create the firefish helm release (also used to update existing deployment): 3. Create the iceshrimp helm release (also used to update existing deployment):
```shell ```shell
helm upgrade \ helm upgrade \
--install \ --install \
--namespace firefish \ --namespace iceshrimp \
--create-namespace \ --create-namespace \
firefish chart/ \ iceshrimp chart/ \
-f .config/helm_values.yml -f .config/helm_values.yml
``` ```
4. Watch your firefish server spin up: 4. Watch your iceshrimp server spin up:
```shell ```shell
kubectl -n firefish get po -w kubectl -n iceshrimp get po -w
``` ```
5. Initial the admin user and managed config: 5. Initial the admin user and managed config:
```shell ```shell
export firefish_USERNAME="my_desired_admin_handle" && \ export iceshrimp_USERNAME="my_desired_admin_handle" && \
export firefish_PASSWORD="myDesiredInitialPassword" && \ export iceshrimp_PASSWORD="myDesiredInitialPassword" && \
export firefish_HOST="firefish.example.com" && \ export iceshrimp_HOST="iceshrimp.example.com" && \
export firefish_TOKEN=$(curl -X POST https://$firefish_HOST/api/admin/accounts/create -H "Content-Type: application/json" -d "{ \"username\":\"$firefish_USERNAME\", \"password\":\"$firefish_PASSWORD\" }" | jq -r '.token') && \ export iceshrimp_TOKEN=$(curl -X POST https://$iceshrimp_HOST/api/admin/accounts/create -H "Content-Type: application/json" -d "{ \"username\":\"$iceshrimp_USERNAME\", \"password\":\"$iceshrimp_PASSWORD\" }" | jq -r '.token') && \
echo "Save this token: ${firefish_TOKEN}" && \ echo "Save this token: ${iceshrimp_TOKEN}" && \
curl -X POST -H "Authorization: Bearer $firefish_TOKEN" https://$firefish_HOST/api/admin/accounts/hosted curl -X POST -H "Authorization: Bearer $iceshrimp_TOKEN" https://$iceshrimp_HOST/api/admin/accounts/hosted
``` ```
6. Enjoy! 6. Enjoy!

View File

@ -1,4 +1,4 @@
# ๐Ÿšš Migrating from Misskey/FoundKey to Firefish # ๐Ÿšš Migrating from Misskey/FoundKey to Iceshrimp
All the guides below assume you're starting in the root of the repo directory. All the guides below assume you're starting in the root of the repo directory.
@ -14,8 +14,8 @@ Tested with Misskey v13.11.3.
If your Misskey v13 is older, we recommend updating your Misskey to v13.11.3. If your Misskey v13 is older, we recommend updating your Misskey to v13.11.3.
```sh ```sh
wget -O mkv13.patch https://codeberg.org/firefish/firefish/raw/branch/develop/docs/mkv13.patch wget -O mkv13.patch https://iceshrimp.dev/iceshrimp/iceshrimp/raw/branch/dev/docs/mkv13.patch
wget -O mkv13_restore.patch https://codeberg.org/firefish/firefish/raw/branch/develop/docs/mkv13_restore.patch wget -O mkv13_restore.patch https://iceshrimp.dev/iceshrimp/iceshrimp/raw/branch/dev/docs/mkv13_restore.patch
git apply mkv13.patch mkv13_restore.patch git apply mkv13.patch mkv13_restore.patch
cd packages/backend cd packages/backend
@ -27,13 +27,13 @@ for i in $(seq 1 $NUM_MIGRATIONS); do pnpm typeorm migration:revert -d ormconfig
cd ../../ cd ../../
git remote set-url origin https://codeberg.org/firefish/firefish.git git remote set-url origin https://iceshrimp.dev/iceshrimp/iceshrimp.git
git fetch origin git fetch origin
git stash push git stash push
rm -rf fluent-emojis misskey-assets rm -rf fluent-emojis misskey-assets
git switch main # or beta or develop git switch main # or beta or develop
git pull --ff git pull --ff
wget -O renote_muting.patch https://codeberg.org/firefish/firefish/raw/branch/develop/docs/renote_muting.patch wget -O renote_muting.patch https://iceshrimp.dev/iceshrimp/iceshrimp/raw/branch/dev/docs/renote_muting.patch
git apply renote_muting.patch git apply renote_muting.patch
pnpm install pnpm install