Use pictrs instead of pictshare
This commit is contained in:
parent
a13e9fe395
commit
e583e45d9a
10 changed files with 94 additions and 51 deletions
1
ansible/ansible.cfg
vendored
1
ansible/ansible.cfg
vendored
|
@ -1,5 +1,6 @@
|
||||||
[defaults]
|
[defaults]
|
||||||
inventory=inventory
|
inventory=inventory
|
||||||
|
interpreter_python=/usr/bin/python3
|
||||||
|
|
||||||
[ssh_connection]
|
[ssh_connection]
|
||||||
pipelining = True
|
pipelining = True
|
||||||
|
|
10
ansible/lemmy.yml
vendored
10
ansible/lemmy.yml
vendored
|
@ -24,10 +24,11 @@
|
||||||
creates: '/etc/letsencrypt/live/{{domain}}/privkey.pem'
|
creates: '/etc/letsencrypt/live/{{domain}}/privkey.pem'
|
||||||
|
|
||||||
- name: create lemmy folder
|
- name: create lemmy folder
|
||||||
file: path={{item.path}} state=directory
|
file: path={{item.path}} {{item.owner}} state=directory
|
||||||
with_items:
|
with_items:
|
||||||
- { path: '/lemmy/' }
|
- { path: '/lemmy/', owner: 'root' }
|
||||||
- { path: '/lemmy/volumes/' }
|
- { path: '/lemmy/volumes/', owner: 'root' }
|
||||||
|
- { path: '/lemmy/volumes/pictrs/', owner: '991' }
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: add template files
|
- name: add template files
|
||||||
|
@ -38,9 +39,6 @@
|
||||||
- { src: '../docker/iframely.config.local.js', dest: '/lemmy/iframely.config.local.js', mode: '0600' }
|
- { src: '../docker/iframely.config.local.js', dest: '/lemmy/iframely.config.local.js', mode: '0600' }
|
||||||
vars:
|
vars:
|
||||||
lemmy_docker_image: "dessalines/lemmy:{{ lookup('file', 'VERSION') }}"
|
lemmy_docker_image: "dessalines/lemmy:{{ lookup('file', 'VERSION') }}"
|
||||||
lemmy_port: "8536"
|
|
||||||
pictshare_port: "8537"
|
|
||||||
iframely_port: "8538"
|
|
||||||
|
|
||||||
- name: add config file (only during initial setup)
|
- 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'
|
template: src='templates/config.hjson' dest='/lemmy/lemmy.hjson' mode='0600' force='no' owner='1000' group='1000'
|
||||||
|
|
7
ansible/lemmy_dev.yml
vendored
7
ansible/lemmy_dev.yml
vendored
|
@ -26,10 +26,11 @@
|
||||||
creates: '/etc/letsencrypt/live/{{domain}}/privkey.pem'
|
creates: '/etc/letsencrypt/live/{{domain}}/privkey.pem'
|
||||||
|
|
||||||
- name: create lemmy folder
|
- name: create lemmy folder
|
||||||
file: path={{item.path}} state=directory
|
file: path={{item.path}} owner={{item.owner}} state=directory
|
||||||
with_items:
|
with_items:
|
||||||
- { path: '/lemmy/' }
|
- { path: '/lemmy/', owner: 'root' }
|
||||||
- { path: '/lemmy/volumes/' }
|
- { path: '/lemmy/volumes/', owner: 'root' }
|
||||||
|
- { path: '/lemmy/volumes/pictrs/', owner: '991' }
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: add template files
|
- name: add template files
|
||||||
|
|
13
ansible/templates/docker-compose.yml
vendored
13
ansible/templates/docker-compose.yml
vendored
|
@ -12,7 +12,7 @@ services:
|
||||||
- ./lemmy.hjson:/config/config.hjson:ro
|
- ./lemmy.hjson:/config/config.hjson:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
- pictshare
|
- pictrs
|
||||||
- iframely
|
- iframely
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
|
@ -25,18 +25,19 @@ services:
|
||||||
- ./volumes/postgres:/var/lib/postgresql/data
|
- ./volumes/postgres:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
pictshare:
|
pictrs:
|
||||||
image: hascheksolutions/pictshare:latest
|
image: asonix/pictrs:amd64-v0.1.0-r9
|
||||||
|
user: 991:991
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:8537:80"
|
- "127.0.0.1:8537:8080"
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/pictshare:/usr/share/nginx/html/data
|
- ./volumes/pictrs:/mnt
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
iframely:
|
iframely:
|
||||||
image: dogbin/iframely:latest
|
image: dogbin/iframely:latest
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:8061:80"
|
- "127.0.0.1:8538:80"
|
||||||
volumes:
|
volumes:
|
||||||
- ./iframely.config.local.js:/iframely/config.local.js:ro
|
- ./iframely.config.local.js:/iframely/config.local.js:ro
|
||||||
restart: always
|
restart: always
|
||||||
|
|
8
ansible/templates/nginx.conf
vendored
8
ansible/templates/nginx.conf
vendored
|
@ -70,19 +70,15 @@ server {
|
||||||
proxy_cache_min_uses 5;
|
proxy_cache_min_uses 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /pictshare/ {
|
location /pictrs/ {
|
||||||
proxy_pass http://0.0.0.0:8537/;
|
proxy_pass http://0.0.0.0:8537/;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
|
||||||
if ($request_uri ~ \.(?:ico|gif|jpe?g|png|webp|bmp|mp4)$) {
|
|
||||||
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
location /iframely/ {
|
location /iframely/ {
|
||||||
proxy_pass http://0.0.0.0:8061/;
|
proxy_pass http://0.0.0.0:8538/;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
|
52
docker/dev/docker-compose.yml
vendored
52
docker/dev/docker-compose.yml
vendored
|
@ -1,6 +1,31 @@
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
nginx:
|
||||||
|
image: nginx:1.19-alpine
|
||||||
|
ports:
|
||||||
|
- "8536:8536"
|
||||||
|
volumes:
|
||||||
|
- ./nginx.conf:/etc/nginx/nginx.conf
|
||||||
|
depends_on:
|
||||||
|
- lemmy
|
||||||
|
- pictrs
|
||||||
|
- iframely
|
||||||
|
restart: "always"
|
||||||
|
|
||||||
|
lemmy:
|
||||||
|
build:
|
||||||
|
context: ../../
|
||||||
|
dockerfile: docker/dev/Dockerfile
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- RUST_LOG=debug
|
||||||
|
volumes:
|
||||||
|
- ../lemmy.hjson:/config/config.hjson
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- iframely
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:12-alpine
|
image: postgres:12-alpine
|
||||||
environment:
|
environment:
|
||||||
|
@ -11,34 +36,15 @@ services:
|
||||||
- ./volumes/postgres:/var/lib/postgresql/data
|
- ./volumes/postgres:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
lemmy:
|
pictrs:
|
||||||
build:
|
image: asonix/pictrs:amd64-v0.1.0-r9
|
||||||
context: ../../
|
user: 991:991
|
||||||
dockerfile: docker/dev/Dockerfile
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:8536:8536"
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- RUST_LOG=debug
|
|
||||||
volumes:
|
volumes:
|
||||||
- ../lemmy.hjson:/config/config.hjson
|
- ./volumes/pictrs:/mnt
|
||||||
depends_on:
|
|
||||||
- postgres
|
|
||||||
- pictshare
|
|
||||||
- iframely
|
|
||||||
|
|
||||||
pictshare:
|
|
||||||
image: hascheksolutions/pictshare:latest
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:8537:80"
|
|
||||||
volumes:
|
|
||||||
- ./volumes/pictshare:/usr/share/nginx/html/data
|
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
iframely:
|
iframely:
|
||||||
image: dogbin/iframely:latest
|
image: dogbin/iframely:latest
|
||||||
ports:
|
|
||||||
- "127.0.0.1:8061:80"
|
|
||||||
volumes:
|
volumes:
|
||||||
- ../iframely.config.local.js:/iframely/config.local.js:ro
|
- ../iframely.config.local.js:/iframely/config.local.js:ro
|
||||||
restart: always
|
restart: always
|
||||||
|
|
40
docker/dev/nginx.conf
vendored
Normal file
40
docker/dev/nginx.conf
vendored
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
server {
|
||||||
|
listen 8536;
|
||||||
|
server_name 127.0.0.1;
|
||||||
|
#access_log off;
|
||||||
|
|
||||||
|
# Upload limit for pictshare
|
||||||
|
client_max_body_size 50M;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://lemmy:8536;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
|
||||||
|
# WebSocket support
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
}
|
||||||
|
|
||||||
|
location /pictrs/ {
|
||||||
|
proxy_pass http://pictrs:8080/;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /iframely/ {
|
||||||
|
proxy_pass http://iframely:80/;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
4
ui/src/components/comment-form.tsx
vendored
4
ui/src/components/comment-form.tsx
vendored
|
@ -304,7 +304,7 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
|
||||||
file = event;
|
file = event;
|
||||||
}
|
}
|
||||||
|
|
||||||
const imageUploadUrl = `/pictshare/api/upload.php`;
|
const imageUploadUrl = `/pictrs/image`;
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file);
|
formData.append('file', file);
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
|
||||||
})
|
})
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(res => {
|
.then(res => {
|
||||||
let url = `${window.location.origin}/pictshare/${res.url}`;
|
let url = `${window.location.origin}/pictrs/${res.url}`;
|
||||||
let imageMarkdown =
|
let imageMarkdown =
|
||||||
res.filetype == 'mp4' ? `[vid](${url}/raw)` : `![](${url})`;
|
res.filetype == 'mp4' ? `[vid](${url}/raw)` : `![](${url})`;
|
||||||
let content = i.state.commentForm.content;
|
let content = i.state.commentForm.content;
|
||||||
|
|
6
ui/src/components/post-form.tsx
vendored
6
ui/src/components/post-form.tsx
vendored
|
@ -518,9 +518,9 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
||||||
file = event;
|
file = event;
|
||||||
}
|
}
|
||||||
|
|
||||||
const imageUploadUrl = `/pictshare/api/upload.php`;
|
const imageUploadUrl = `/pictrs/image`;
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file);
|
formData.append('images', file);
|
||||||
|
|
||||||
i.state.imageLoading = true;
|
i.state.imageLoading = true;
|
||||||
i.setState(i.state);
|
i.setState(i.state);
|
||||||
|
@ -531,7 +531,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
||||||
})
|
})
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(res => {
|
.then(res => {
|
||||||
let url = `${window.location.origin}/pictshare/${encodeURI(res.url)}`;
|
let url = `${window.location.origin}/pictrs/${encodeURI(res.url)}`;
|
||||||
if (res.filetype == 'mp4') {
|
if (res.filetype == 'mp4') {
|
||||||
url += '/raw';
|
url += '/raw';
|
||||||
}
|
}
|
||||||
|
|
4
ui/src/components/user.tsx
vendored
4
ui/src/components/user.tsx
vendored
|
@ -988,7 +988,7 @@ export class User extends Component<any, UserState> {
|
||||||
handleImageUpload(i: User, event: any) {
|
handleImageUpload(i: User, event: any) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
let file = event.target.files[0];
|
let file = event.target.files[0];
|
||||||
const imageUploadUrl = `/pictshare/api/upload.php`;
|
const imageUploadUrl = `/pictrs/image`;
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file);
|
formData.append('file', file);
|
||||||
|
|
||||||
|
@ -1001,7 +1001,7 @@ export class User extends Component<any, UserState> {
|
||||||
})
|
})
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(res => {
|
.then(res => {
|
||||||
let url = `${window.location.origin}/pictshare/${res.url}`;
|
let url = `${window.location.origin}/pictrs/${res.url}`;
|
||||||
if (res.filetype == 'mp4') {
|
if (res.filetype == 'mp4') {
|
||||||
url += '/raw';
|
url += '/raw';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue