summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-02-01 00:37:34 -0500
committerDessalines <tyhou13@gmx.com>2020-02-01 00:37:34 -0500
commit9f2b61708e21aed39526ec68f9f23c6ba4602491 (patch)
treed9f1ea1195c6848cf2e0797782d4ca4815ca7eab
parent09747ccb6625d77f207bdcebd19d0d2434371c1b (diff)
parentcb1acd2cf07f54b6f7510dec46131e5b5f4c5d30 (diff)
Merge branch 'dev' into websocket_scopes
-rw-r--r--README.md2
-rw-r--r--ansible/lemmy.yml15
-rw-r--r--ansible/templates/docker-compose.yml35
-rw-r--r--ansible/uninstall.yml48
-rwxr-xr-xserver/query_testing/apache_bench_report.sh3
-rwxr-xr-xserver/query_testing/api_benchmark.sh34
-rwxr-xr-xserver/query_testing/generate_explain_reports.sh3
-rw-r--r--server/src/api/site.rs4
-rw-r--r--ui/src/components/navbar.tsx2
-rw-r--r--ui/src/services/WebSocketService.ts4
-rw-r--r--ui/src/translations/nl.ts19
11 files changed, 154 insertions, 15 deletions
diff --git a/README.md b/README.md
index 79ecc4db..2bf97d21 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
<p align="center">
- <a href="" rel="noopener">
+ <a href="https://dev.lemmy.ml/" rel="noopener">
<img width=200px height=200px src="ui/assets/favicon.svg"></a>
</p>
diff --git a/ansible/lemmy.yml b/ansible/lemmy.yml
index e9ad4ddd..6ec4f916 100644
--- a/ansible/lemmy.yml
+++ b/ansible/lemmy.yml
@@ -29,12 +29,15 @@
- { path: '/lemmy/' }
- { path: '/lemmy/volumes/' }
- - name: add all template files
- template: src={{item.src}} dest={{item.dest}}
- with_items:
- - { src: '../docker/prod/docker-compose.yml', dest: '/lemmy/docker-compose.yml' }
- - { src: 'templates/config.hjson', dest: '/lemmy/lemmy.hjson' }
- - { src: 'templates/nginx.conf', dest: '/etc/nginx/sites-enabled/lemmy.conf' }
+ - block:
+ - name: add template files
+ template: src={{item.src}} dest={{item.dest}} mode={{item.mode}}
+ with_items:
+ - { src: 'templates/docker-compose.yml', dest: '/lemmy/docker-compose.yml', mode: '0600' }
+ - { src: 'templates/nginx.conf', dest: '/etc/nginx/sites-enabled/lemmy.conf', mode: '0644' }
+
+ - name: add config file (only during initial setup)
+ template: src='templates/config.hjson' dest='/lemmy/lemmy.hjson' mode='0600' force='no' owner='1000' group='1000'
vars:
postgres_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/postgres chars=ascii_letters,digits') }}"
jwt_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/jwt chars=ascii_letters,digits') }}"
diff --git a/ansible/templates/docker-compose.yml b/ansible/templates/docker-compose.yml
new file mode 100644
index 00000000..96489c70
--- /dev/null
+++ b/ansible/templates/docker-compose.yml
@@ -0,0 +1,35 @@
+version: '3.3'
+
+services:
+ lemmy:
+ image: dessalines/lemmy:v0.6.5
+ ports:
+ - "127.0.0.1:8536:8536"
+ restart: always
+ volumes:
+ - ./lemmy.hjson:/config/config.hjson:ro
+ depends_on:
+ - lemmy_db
+ - lemmy_pictshare
+
+ lemmy_db:
+ image: postgres:12-alpine
+ environment:
+ - POSTGRES_USER=lemmy
+ - POSTGRES_PASSWORD={{ postgres_password }}
+ - POSTGRES_DB=lemmy
+ volumes:
+ - lemmy_db:/var/lib/postgresql/data
+ restart: always
+
+ lemmy_pictshare:
+ image: shtripok/pictshare:latest
+ ports:
+ - "127.0.0.1:8537:80"
+ volumes:
+ - lemmy_pictshare:/usr/share/nginx/html/data
+ restart: always
+
+volumes:
+ lemmy_db:
+ lemmy_pictshare:
diff --git a/ansible/uninstall.yml b/ansible/uninstall.yml
new file mode 100644
index 00000000..252c5bd1
--- /dev/null
+++ b/ansible/uninstall.yml
@@ -0,0 +1,48 @@
+---
+- hosts: all
+
+ vars_prompt:
+
+ - name: confirm_uninstall
+ prompt: "Do you really want to uninstall Lemmy? This will delete all data and can not be reverted [yes/no]"
+ private: no
+
+ - name: delete_certs
+ prompt: "Delete certificates? Select 'no' if you want to reinstall Lemmy [yes/no]"
+ private: no
+
+ tasks:
+ - name: end play if no confirmation was given
+ debug:
+ msg: "Uninstall cancelled, doing nothing"
+ when: not confirm_uninstall|bool
+
+ - meta: end_play
+ when: not confirm_uninstall|bool
+
+ - name: stop docker-compose
+ docker_compose:
+ project_src: /lemmy/
+ state: absent
+
+ - name: delete data
+ file: path={{item.path}} state=absent
+ with_items:
+ - { path: '/lemmy/' }
+ - { path: '/etc/nginx/sites-enabled/lemmy.conf' }
+
+ - name: Remove a volume
+ docker_volume: name={{item.name}} state=absent
+ with_items:
+ - { name: 'lemmy_lemmy_db' }
+ - { name: 'lemmy_lemmy_pictshare' }
+
+ - name: delete entire ecloud folder
+ file: path='/mnt/repo-base/' state=absent
+ when: delete_certs|bool
+
+ - name: remove certbot cronjob
+ cron:
+ name=certbot-renew-lemmy
+ state=absent
+
diff --git a/server/query_testing/apache_bench_report.sh b/server/query_testing/apache_bench_report.sh
index c22af730..62b3e863 100755
--- a/server/query_testing/apache_bench_report.sh
+++ b/server/query_testing/apache_bench_report.sh
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash
+set -e
declare -a arr=(
"https://mastodon.social/"
diff --git a/server/query_testing/api_benchmark.sh b/server/query_testing/api_benchmark.sh
new file mode 100755
index 00000000..8f8c65f1
--- /dev/null
+++ b/server/query_testing/api_benchmark.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -e
+
+# By default, this script runs against `http://127.0.0.1:8536`, but you can pass a different Lemmy instance,
+# eg `./api_benchmark.sh "https://example.com"`.
+DOMAIN=${1:-"http://127.0.0.1:8536"}
+
+declare -a arr=(
+"/api/v1/site"
+"/api/v1/categories"
+"/api/v1/modlog"
+"/api/v1/search?q=test&type_=Posts&sort=Hot"
+"/api/v1/community"
+"/api/v1/community/list?sort=Hot"
+"/api/v1/post/list?sort=Hot&type_=All"
+)
+
+## now loop through the above array
+for path in "${arr[@]}"
+do
+ URL="$DOMAIN$path"
+ printf "\n\n\n"
+ echo "testing $URL"
+ curl --show-error --fail --silent "$URL" >/dev/null
+ ab -c 64 -t 10 "$URL" > out.abtest
+ grep "Server Hostname:" out.abtest
+ grep "Document Path:" out.abtest
+ grep "Requests per second" out.abtest
+ grep "(mean, across all concurrent requests)" out.abtest
+ grep "Transfer rate:" out.abtest
+ echo "---"
+done
+
+rm *.abtest
diff --git a/server/query_testing/generate_explain_reports.sh b/server/query_testing/generate_explain_reports.sh
index 994a9627..6ce7dc42 100755
--- a/server/query_testing/generate_explain_reports.sh
+++ b/server/query_testing/generate_explain_reports.sh
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash
+set -e
# Do the views first
diff --git a/server/src/api/site.rs b/server/src/api/site.rs
index a5faf34d..dfbd5ff0 100644
--- a/server/src/api/site.rs
+++ b/server/src/api/site.rs
@@ -3,7 +3,7 @@ use diesel::PgConnection;
use std::str::FromStr;
#[derive(Serialize, Deserialize)]
-pub struct ListCategories;
+pub struct ListCategories {}
#[derive(Serialize, Deserialize)]
pub struct ListCategoriesResponse {
@@ -72,7 +72,7 @@ pub struct EditSite {
}
#[derive(Serialize, Deserialize)]
-pub struct GetSite;
+pub struct GetSite {}
#[derive(Serialize, Deserialize)]
pub struct SiteResponse {
diff --git a/ui/src/components/navbar.tsx b/ui/src/components/navbar.tsx
index d6795832..c03dcd87 100644
--- a/ui/src/components/navbar.tsx
+++ b/ui/src/components/navbar.tsx
@@ -84,7 +84,7 @@ export class Navbar extends Component<any, NavbarState> {
}
render() {
- return <div>{this.navbar()}</div>;
+ return this.navbar();
}
componentWillUnmount() {
diff --git a/ui/src/services/WebSocketService.ts b/ui/src/services/WebSocketService.ts
index f3d40149..f1a6d156 100644
--- a/ui/src/services/WebSocketService.ts
+++ b/ui/src/services/WebSocketService.ts
@@ -130,7 +130,7 @@ export class WebSocketService {
public listCategories() {
this.subject.next(
- this.wsSendWrapper(UserOperation.ListCategories, undefined)
+ this.wsSendWrapper(UserOperation.ListCategories, {})
);
}
@@ -264,7 +264,7 @@ export class WebSocketService {
}
public getSite() {
- this.subject.next(this.wsSendWrapper(UserOperation.GetSite, undefined));
+ this.subject.next(this.wsSendWrapper(UserOperation.GetSite, {}));
}
public search(form: SearchForm) {
diff --git a/ui/src/translations/nl.ts b/ui/src/translations/nl.ts
index 5c8670ee..41aa2438 100644
--- a/ui/src/translations/nl.ts
+++ b/ui/src/translations/nl.ts
@@ -211,6 +211,23 @@ export const nl = {
open_registration: 'Open registratie',
registration_closed: 'Registratie gesloten',
enable_nsfw: 'NSFW toestaan',
- theme: 'Thema'
+ theme: 'Thema',
+ create_private_message: 'Maak een beveiligd bericht',
+ send_secure_message: 'Verstuur beveiligd bericht',
+ send_message: 'Verstuur bericht',
+ message: 'Bericht',
+ old: 'Oud',
+ message_sent: 'Bericht verstuurd',
+ messages: 'Berichten',
+ matrix_user_id: 'Matrix gebruikers-id',
+ private_message_disclaimer: 'Waarschuwing: Privé berichten in Lemmy zijn niet beveiligd. Maak een account aan op <1>Riot.im</1> om veilig te communiceren',
+ donate_to_lemmy: 'Doneer aan Lemmy',
+ donate: 'Doneer',
+ from: 'van',
+ logged_in: 'Ingelogd',
+ email_already_exists: 'Email bestaat al',
+ couldnt_create_private_message: 'Kan beveiligd bericht niet maken',
+ no_private_message_edit_allowed: 'Niet toegestaan om privé berichten te wijzigen',
+ couldnt_update_private_message: 'Kan beveiligd bericht niet bijwerken'
},
};