Indonesian Additional Translation (#122)

* Revert "Small Fix"

This reverts commit debdfe4dc3d147594f6ed51c91821a39ad88b9a3.

* Lemmy Docs Translate

* Indonesian Additional Translation
This commit is contained in:
I. Musthafa 2022-02-01 22:02:23 +07:00 committed by GitHub
parent 89d0402c54
commit 3625c7ccdd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 140 additions and 140 deletions

View file

@ -13,7 +13,7 @@
- [Konfigurasi](administration/configuration.md)
- [Memulai dengan Federasi](administration/federation_getting_started.md)
- [Penyelesaian Masalah](administration/troubleshooting.md)
- [Cadangan dan Pemulihan](administration/backup_and_restore.md)
- [Pencadangan dan Pemulihan](administration/backup_and_restore.md)
- [Federasi](federation/federation.md)
- [Tinjauan Federasi](federation/overview.md)
- [Protokol Lemmy](federation/lemmy_protocol.md)

View file

@ -1,30 +1,30 @@
# Backup and Restore Guide
# Petunjuk Pencadangan dan Pemulihan
## Docker and Ansible
## Docker dan Ansible
When using docker or ansible, there should be a `volumes` folder, which contains both the database, and all the pictures. Copy this folder to the new instance to restore your data.
Ketika menggunakan Docker atau Ansible, seharusnya ada folder `volumes` yang mengandung baik basis data dan seluruh gambar. Salin folder ini ke peladen baru untuk memulihkan data Anda
### Incremental Database backup
### Pencadangan basis data bertahap
To incrementally backup the DB to an `.sql` file, you can run:
Untuk pencadangan DB bertahap ke berkas `.sql`, Anda bisa menjalankan:
```bash
docker-compose exec postgres pg_dumpall -c -U lemmy > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
```
### A Sample backup script
### Contoh skrip pencadangan
```bash
#!/bin/sh
# DB Backup
# Pencadangan DB
ssh MY_USER@MY_IP "docker-compose exec postgres pg_dumpall -c -U lemmy" > ~/BACKUP_LOCATION/INSTANCE_NAME_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
# Volumes folder Backup
# Pencadangan folder volumes
rsync -avP -zz --rsync-path="sudo rsync" MY_USER@MY_IP:/LEMMY_LOCATION/volumes ~/BACKUP_LOCATION/FOLDERNAME
```
### Restoring the DB
### Memulihkan DB
If you need to restore from a `pg_dumpall` file, you need to first clear out your existing database
Jika Anda perlu untuk memulihkan dari berkas `pg_dumpall`, pertama-tama Anda perlu membersihkan basis data telah ada Anda.
```bash
# Drop the existing DB
@ -37,11 +37,11 @@ cat db_dump.sql | docker exec -i FOLDERNAME_postgres_1 psql -U lemmy # restore
docker exec -i FOLDERNAME_postgres_1 psql -U lemmy -c "alter user lemmy with password 'bleh'"
```
### Changing your domain name
### Mengubah nama domain Anda
If you haven't federated yet, you can change your domain name in the DB. **Warning: do not do this after you've federated, or it will break federation.**
Jika Anda belum terfederasi, Anda bisa mengubah nama domain Anda di DB. **Peringatan: jangan lakukan ini setelah Anda terfederasi atau itu akan merusak federasi.**
Get into `psql` for your docker:
Pergi ke `psql` dari Docker Anda:
`docker-compose exec postgres psql -U lemmy`
@ -70,7 +70,7 @@ update community set shared_inbox_url = replace (shared_inbox_url, 'old_domain',
```
## More resources
## Lihat juga
- https://stackoverflow.com/questions/24718706/backup-restore-a-dockerized-postgresql-database

View file

@ -1,19 +1,19 @@
# Configuration
# Konfigurasi
The configuration is based on the file config.hjson, which is located by default at `config/config.hjson`. To change the default location, you can set the environment variable `LEMMY_CONFIG_LOCATION`.
Konfigurasi didasarkan pada berkas config.hjson, yang di mana ditempatkan secara baku di `config/config.hjson`. Untuk mengubah lokasi baku, Anda bisa mengatur variabel lingkungan `LEMMY_CONFIG_LOCATION`.
An additional environment variable `LEMMY_DATABASE_URL` is available, which can be used with a PostgreSQL connection string like `postgres://lemmy:password@lemmy_db:5432/lemmy`, passing all connection details at once.
Variabel lingkungan tambahan `LEMMY_DATABASE_URL` juga tersedia, yang bisa digunakan dengan string koneksi PostgreSQL seperti `postgres://lemmy:password@lemmy_db:5432/lemmy`, meneruskan semua detail koneksi sekaligus.
If the Docker container is not used, manually create the database specified above by running the following commands:
Jika kontainer Docker tidak digunakan, buat basis data yang disebutkan di atas secara manual dengan menjalankan perintah berikut:
```bash
cd server
./db-init.sh
```
**Federation is not set up by default.** You can add this [this federation block](https://github.com/lemmynet/lemmy/blob/main/config/config.hjson#L64) to your `lemmy.hjson`, and ask other servers to add you to their allowlist.
**Federasi tidak diatur secara baku.** Anda bisa menambahkan [blok federasi ini](https://github.com/lemmynet/lemmy/blob/main/config/config.hjson#L64) ke `lemmy.hjson` Anda dan minta peladen lain untuk menambahkan Anda ke daftar yang diperbolehkan mereka.
## Full config with default values
## Semua konfigurasi dengan nilai baku
```hjson
{{#include ../../../include/config/defaults.hjson}}

View file

@ -1,45 +1,45 @@
# Federation
# Federasi
Lemmy has three types of federation:
Lemmy memiliki tiga jenis federasi:
- Allowlist: Explicitly list instances to connect to.
- BlockList: Explicitly list instances to not connect to. Federation is open to all other instances.
- Open: Federate with all potential instances.
- Daftar yang diperbolehkan: Secara jelas mendaftar peladen untuk terhubung.
- Daftar yang diblokir: Secara jelas mendaftar peladen untuk tidak terhubung. Federasi masih bisa untuk semua peladen lainnya.
- Terbuka: Terfederasi dengan semua peladen yang mungkin.
**Federation is not set up by default.** You can add this [this federation block](https://github.com/lemmynet/lemmy/blob/main/config/config.hjson#L64) to your `lemmy.hjson`, and ask other servers to add you to their allowlist.
**Federasi tidak diatur secara baku.** Anda bisa menambahkan [blok federasi ini](https://github.com/lemmynet/lemmy/blob/main/config/config.hjson#L64) ke `lemmy.hjson` Anda dan minta peladen lain untuk menambahkan Anda ke daftar yang diperbolehkan mereka.
Lemmy uses the ActivityPub protocol (a W3C standard) to enable federation between different servers (often called instances). This is very similar to the way email works. For example, if you use gmail.com, then you can not only send mails to other gmail.com users, but also to yahoo.com, yandex.ru and so on. Email uses the SMTP protocol to achieve this, so you can think of ActivityPub as "SMTP for social media". The amount of different actions possible on social media (post, comment, like, share, etc) means that ActivityPub is much more complicated than SMTP.
Lemmy menggunakan protokol ActivityPub (standar W3C) untuk mengaktifkan federasi antar peladen berbeda. Ini sangat sama dengan bagaimana surel bekerja. Contohnya, jika Anda menggunakan gmail.com, maka Anda bisa tidak hanya mengirim surel ke pengguna gmail.com lain, tapi juga ke pengguna yahoo.com, yandex.ru, dll. Surel menggunakan protokol SMTP untuk mencapai hal tersebut, jadi Anda bisa menganggap ActivityPub adalah "SMTP untuk media sosial". Jumlah tindakan berbeda yang mungkin dilakukan di media sosial (pos, komentar, suka, bagikan, dll) berarti bahwa ActivityPub jauh lebih rumit daripada SMTP.
As with email, ActivityPub federation happens only between servers. So if you are registered on `enterprise.lemmy.ml`, you only connect to the API of `enterprise.lemmy.ml`, while the server takes care of sending and receiving data from other instances (eg `voyager.lemmy.ml`). The great advantage of this approach is that the average user doesn't have to do anything to use federation. In fact if you are using Lemmy, you are likely already using it. One way to confirm is by going to a community or user profile. If you are on `enterprise.lemmy.ml` and you see a user like `@nutomic@voyager.lemmy.ml`, or a community like `!main@ds9.lemmy.ml`, then those are federated, meaning they use a different instance from yours.
Sama seperti surel, federasi ActivityPub hanya terjadi antar peladen. Jadi jika Anda terdaftar pada `enterprise.lemmy.ml`, Anda hanya terhubung ke API dari `enterprise.lemmy.ml`, sementara peladen mengurus pengiriman dan penerimaan data dari peladen lainnya (mis. `voyager.lemmy.ml`). Keuntungan besar dari pendekatan ini adalah pengguna biasa tidak harus melakukan apa pun untuk menggunakan federasi. Bahkan jika Anda menggunakan Lemmy, kemungkinan besar Anda sudah menggunakannya. Salah satu cara untuk mengonfirmasinya adalah dengan membuka komunitas atau profil pengguna. Jika Anda berada di `enterprise.lemmy.ml` dan Anda melihat pengguna seperti `@nutomic@voyager.lemmy.ml`, atau komunitas seperti `!main@ds9.lemmy.ml`, maka itu berarti Anda sudah terfederasi, artinya mereka menggunakan peladen yang berbeda dari Anda.
One way you can take advantage of federation is by opening a different instance, like `ds9.lemmy.ml`, and browsing it. If you see an interesting community, post or user that you want to interact with, just copy its URL and paste it into the search of your own instance. Your instance will connect to the other one (assuming the allowlist/blocklist allows it), and directly display the remote content to you, so that you can follow a community or comment on a post. Here are some examples of working searches:
Salah satu cara Anda bisa mengambil keuntungan dari federasi adalah dengan membuka peladen lain, seperti `ds9.lemmy.ml` dan jelajahi itu. Jika Anda melihat sebuah komunitas, pos, atau pengguna yang menarik yang Anda ingin berinteraksi dengan mereka, tinggal salin URL-nya dan tempel itu di pencarian dari peladen Anda sendiri. Peladen Anda akan terhubung ke yang disebutkan (menganggap daftar yang diperbolehkan/diblokir memperbolehkannya), dan secara langsung menampilkan konten jarak jauh untuk Anda, sehingga Anda bisa mengikuti sebuah komunitas atau berkomentar di sebuah pos. Berikut adalah beberapa contoh dari pencarian yang bekerja:
- `!main@lemmy.ml` (Community)
- `@nutomic@lemmy.ml` (User)
- `https://lemmy.ml/c/programming` (Community)
- `https://lemmy.ml/u/nutomic` (User)
- `https://lemmy.ml/post/123` (Post)
- `https://lemmy.ml/comment/321` (Comment)
- `!main@lemmy.ml` (Komunitas)
- `@nutomic@lemmy.ml` (Pengguna)
- `https://lemmy.ml/c/programming` (Komunitas)
- `https://lemmy.ml/u/nutomic` (Pengguna)
- `https://lemmy.ml/post/123` (Pos)
- `https://lemmy.ml/comment/321` (Komentar)
You can see the list of linked instances by following the "Instances" link at the bottom of any Lemmy page.
Anda bisa melihat daftar dari peladen yang terhubung dengan mengikuti pada tautan "Peladen" pada bagian bawah dari setiap halaman Lemmy.
## Fetching communities
## Mengambil komunitas
If you search for a community first time, 20 posts are fetched initially. Only if a least one user on your instance subscribes to the remote community, will the community send updates to your instance. Updates include:
Jika Anda mencari sebuah komunitas untuk pertama kali, awal-awal 20 pos akan diambil. Hanya jika paling tidak satu pengguna dari peladen Anda berlangganan ke komunitas jarak jauh yang akan membuat komunitas tersebut mengirim pembaruan ke peladen Anda. Pembaruan termasuk:
- New posts, comments
- Votes
- Post, comment edits and deletions
- Mod actions
- Pos dan komentar baru
- Pilihan (Pilih Atas/Bawah)
- Penyuntingan dan penghapusan pos dan komentar
- Tindakan moderator
You can copy the URL of the community from the address bar in your browser and insert it in your search field. Wait a few seconds, the post will appear below. At the moment there is no loading indicator for the search, so wait a few seconds if it shows "no results".
Anda bisa menyalin URL dari komunitas di bilah alamat peramban Anda dan memasukkannya ke bilah pencarian Anda. Tunggu beberapa saat dan pos akan muncul. Saat ini tidak ada penunjuk sedang memuat untuk pencarian, jadi tunggu beberapa saat jika muncul "no results".
## Fetching posts
## Mengambil pos
Paste the URL of a post into your Lemmy instance's search field. Wait a few seconds until the post appears. This will also fetch the community profile, and the profile of the post creator.
Tempel URL dari pos ke bilah pencarian peladen Lemmy Anda. Tunggu beberapa saat sampai posnya muncul. Ini juga akan mengambil profil komunitas dan profil dari pembuat pos.
## Fetching comments
## Mengambil komentar
If you find an interesting comment under a posting on another instance, you can find below the comment in the 3-dot-menu the link-symbol. Copy this link. It looks like `https://lemmy.ml/post/56382/comment/40796`. Remove the `post/XXX` part and put it into your search-bar. For this example, search for `https://lemmy.ml/comment/40796`. This comment, all parent comments, users and community and the corresponding post are fetched from the remote instance, if they are not known locally.
Jika Anda menemukan sebuah komentar yang menarik di bawah pos di peladen lain, Anda bisa mencari di bawah komentar di menu 3 tombol sebuah ikon tautan. Salin tautan tersebut. Bentuknya seperti `https://lemmy.ml/post/56382/comment/40796`. Hapus bagian `post/XXX` dan taruh di bilah pencarian Anda. Untuk contoh tadi, bentuknya seperti `https://lemmy.ml/comment/40796`. Komentar tersebut, semua komentar induk, pengguna dan komunitas, dan semua pos yang berhubungan diambil dari peladen jarak jauh, jika mereka belum dikenali secara lokal.
Sibling comments are not fetched! If you want more comments from older posts, you have to search for each of them as described above.
Komentar saudara tidak diambil! Jika Anda ingin lebih banyak komentar dari pos lama, Anda harus mencari mereka satu per satu seperti yang dijelaskan di atas.

View file

@ -1,44 +1,44 @@
# Administration First Steps
# Langkah Pertama Administrasi
After you successfully installed Lemmy either [manually with Docker](administration/install_docker.html) or [automatically with Ansible](administration/install_ansible.html) here are some recommendations for a new administrator of a Lemmy server.
Setelah Anda berhasil memasang Lemmy entah [secara manual dengan Docker](install_docker.md) atau [secara otomatis dengan Ansible](install_ansible.md), berikut adalah beberapa rekomendasi untuk administrator baru peladen Lemmy.
## Admin Settings
## Pengaturan Admin
The first thing to do is to go to your admin panel, which can be found by clicking on the cog at the top right next to the search icon. Here you can define a description for your site, so that people know if it is about one specific topic or if all subjects are welcome. You can also add an icon and a banner that define your server, it can for example be the logo of your organization.
Hal pertama yang dilakukan adalah pergi ke panel admin Anda, yang mana bisa ditemukan dengan mengklik gir di kanan atas di sebelah ikon pencarian. Di sini Anda bisa menentukan deskripsi situs Anda, sehingga orang-orang tahu jika situs Anda tentang topik tertentu atau semua topik diterima. Anda juga bisa menambahkan ikon dan spanduk yang mendefinisikan peladen Anda, contohnya logo organisasi Anda.
Take the time to browse through the entire page to discover the different options you have to customize your Lemmy instance, on the same page you can edit your [configuration file](configuration.html), where you can find information about your database, the email used by the server, the federation options or who is the main administrator.
Luangkan waktu untuk menjelajah seluruh halaman untuk menemukan opsi berbeda untuk menyesuaikan peladen Lemmy Anda, di halaman yang sama Anda bisa menyunting [berkas konfigurasi](configuration.md) Anda, di mana Anda bisa mencari informasi tentang basis data Anda, surel yang digunakan oleh peladen, opsi federasi, atau siapa administrator utama.
It is always good to define another administrator than yourself, in case it is necessary to take actions while you take your best nap. Take a look at the [moderation guide](../moderation/moderation.html) for more information on how to do this.
Merupakan ide bagus untuk menunjuk administrator lain selain diri Anda sendiri, di mana jika harus melakukan suatu tindakan saat Anda terlelap. Lihatlah ke [petunjuk moderasi](../moderation/moderation.md) untuk informasi lebih lanjut tentang hal ini.
## Check that everything is working properly
## Periksa bahwa semua sudah bekerja dengan benar
### Email
### Surel
The easiest way to check that the email is set up correctly is to request a password renewal. You will need to set up an email in your settings if you have not already done so.
Cara termudah untuk memeriksa bahwa surel sudah bekerja adalah meminta pembaruan kata sandi. Anda perlu untuk mengatur surel di pengaturan Anda jika Anda belum melakukannya.
After that just log out, go to the `Login` page, enter your email in the `Email or Username` box and press `forgot password`. If everything is set up correctly, you should receive an email to renew your password. You can ignore this email.
Setelah itu, tinggal keluar, pergi ke halaman `Masuk`, masukkan surel Anda di kotak `Surel atau Nama Pengguna` dan klik `lupa kata sandi`. Jika semuanya diatur dengan benar, Anda akan menerima sebuah surel untuk memperbarui kata sandi Anda. Anda bisa mengabaikan surel tersebut.
### Federation
### Federasi
Federation is disabled by default, and needs to be enabled either through the online admin panel or directly through the `config.json` file.
Federasi dimatikan secara baku dan perlu dinyalakan antara lewat panel admin daring atau langsung lewat berkas `config.json`.
To test that your instance federation is working correctly execute `curl -H 'Accept: application/activity+json' https://your-instance.com/u/your-username`, it should return json data, and not an .html file. If that is unclear to you, it should look similar to the output of `curl -H 'Accept: application/activity+json' https://lemmy.ml/u/nutomic`.
Untuk mencoba bahwa federasi peladen Anda bekerja dengan benar, jalankan `curl -H 'Accept: application/activity+json' https://your-instance.com/u/your-username`, itu seharusnya mengembalikan data json, bukan berkas .html. Jika itu tidak jelas untuk Anda, itu seharusnya sama dengan hasil dari `curl -H 'Accept: application/activity+json' https://lemmy.ml/u/nutomic`.
## Inclusion on join-lemmy.org instance list
## Penyertaan pada daftar peladen di join-lemmy.org
To be included in the list of Lemmy instances on [join-lemmy.org](https://join-lemmy.org/instances) you must meet the following requirements:
- [x] Federate with at least one instance from the list
- [x] Have a site description and icon
- [x] Be patient and wait the site to be updated, there's no fixed schedule for that
Untuk dimasukkan pada daftar peladen Lemmy di [join-lemmy.org](https://join-lemmy.org/instances), Anda harus memenuhi persyaratan berikut:
- [x] Terfederasi dengan paling tidak satu peladen dari daftar
- [x] Mempunyai deskripsi dan ikon situs
- [x] Bersabar dan menunggu situs untuk diperbarui, tidak ada jadwal pasti untuk itu
In the meantime you can always promote your server on other social networks like Mastodon using the hashtag `#Lemmy`.
Sementara menunggu, Anda selalu bisa mempromosikan peladen Anda di jejaring sosial lain seperti Mastodon menggunakan tagar `#Lemmy`.
## Keeping up to date
## Selalu terkini
You can subscribe to the Github RSS feeds to be informed of the latest releases:
Anda bisa berlangganan ke umpan RSS GitHub untuk diinformasikan tentang rilis terbaru:
- [lemmy](https://github.com/LemmyNet/lemmy/releases.atom)
- [lemmy-ui](https://github.com/LemmyNet/lemmy-ui/releases.atom)
- [lemmy-js-client](https://github.com/LemmyNet/lemmy-js-client/releases.atom)
- [joinlemmy-site](https://github.com/LemmyNet/joinlemmy-site/releases.atom)
There is also a [Matrix chat](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org) for instance administrators that you can join. You'll find some really friendly people there who will help you (or at least try to) if you run into any issue.
Ada juga [Matrix](https://matrix.to/#/!OwmdVYiZSXrXbtCNLw:matrix.org) untuk administrator peladen yang Anda bisa gabung. Anda akan bertemu orang-orang yang bersahabat yang akan membantu (atau paling tidak mencoba) jika Anda bertemu suatu masalah.

View file

@ -8,38 +8,38 @@ Instruksi ini ditulis untuk Ubuntu 20.04.
### Bagian-Belakang Lemmy
It is built from source, so this may take a while, especially on slow devices. For example, Lemmy v0.12.2 takes 17 minutes to build on a dual core VPS. If you prefer prebuilt binaries, use Docker.
Karena dibuat dari sumber, jadi mungkin akan memakan waktu yang lama, terutama pada perangkat yang lambat. Contohnya, Lemmy v0.12.2 membutuhkan 17 menit untuk dibangun pada VPS inti ganda. Jika Anda lebih suka binari sudah siap, gunakan Docker.
Compile and install Lemmy, setup database:
Susun dan pasang Lemmy, siapkan basis data:
```bash
apt install pkg-config libssl-dev libpq-dev cargo postgresql
# installs latest release, you can also specify one with --version
# The --locked argument uses the exact versions of dependencies specified in
# `cargo.lock`at release time. Running it without the flag will use newer minor
# release versions of those dependencies, which are not always guaranteed to compile.
# pasang rilis terbaru, anda juga bisa menspesifikkannya dengan --version
# argumen --locked menggunakan versi dependensi yang sama dengan yang dispesifikkan di
# `cargo.lock` saat waktu perilisan. menjalankannya tanpa bendera akan menggunakan versi
# rilis minor dari dependensi tersebut, yang tidak selalu terjamin akan tersusun.
cargo install lemmy_server --target-dir /usr/bin/ --locked
# replace db-passwd with a randomly generated password
# ganti db-passwd dengan kata sandi yang dibuat acak
sudo -iu postgres psql -c "CREATE USER lemmy WITH PASSWORD 'db-passwd';"
sudo -iu postgres psql -c "CREATE DATABASE lemmy WITH OWNER lemmy;"
adduser lemmy --system --disabled-login --no-create-home --group
```
Minimal Lemmy config, put this in `/etc/lemmy/lemmy.hjson` (see [here](https://github.com/LemmyNet/lemmy/blob/main/config/config.hjson) for more config options). Run `chown lemmy:lemmy /etc/lemmy/ -R` to set the correct owner.
Konfigurasi minimal Lemmy, taruh ini di `/etc/lemmy/lemmy.hjson` (lihat di [sini](https://github.com/LemmyNet/lemmy/blob/main/config/config.hjson) untuk pilihan konfigurasi lebih banyak). Jalankan `chown lemmy:lemmy /etc/lemmy/ -R` untuk mengatur pemilik yang benar.
```hjson
{
database: {
# put your db-passwd from above
# taruh db-passwd anda dari atas
password: "db-passwd"
}
# replace with your domain
# ganti dengan domain anda
hostname: example.com
bind: "127.0.0.1"
# put a random string here (required for login token encryption)
# taruh kata acak di sini (diperlukan untuk enkripsi token masuk)
jwt_secret: "changeme"
}
```
Systemd unit file, so that Lemmy automatically starts and stops, logs are handled via journalctl etc. Put this file into /etc/systemd/system/lemmy.service, then run `systemctl enable lemmy` and `systemctl start lemmy`.
Berkas unit systemd, sehingga Lemmy bisa secara otomatis dimulai dan diberhentikan, log dikelola lewat journalctl dll. Taruh berkas ini ke /etc/systemd/system/lemmy.service, kemudian jalankan `systemctl enable lemmy` dan `systemctl start lemmy`.
```
[Unit]
Description=Lemmy - A link aggregator for the fediverse
@ -51,7 +51,7 @@ ExecStart=/usr/bin/lemmy_server
Environment=LEMMY_CONFIG_LOCATION=/etc/lemmy/lemmy.hjson
Restart=on-failure
# Hardening
# penguatan
ProtectSystem=yes
PrivateTmp=true
MemoryDenyWriteExecute=true
@ -61,11 +61,11 @@ NoNewPrivileges=true
WantedBy=multi-user.target
```
If you did everything right, the Lemmy logs from `journalctl -u lemmy` should show "Starting http server at 127.0.0.1:8536". You can also run `curl localhost:8536/api/v3/site` which should give a successful response, looking like `{"site_view":null,"admins":[],"banned":[],"online":0,"version":"unknown version","my_user":null,"federated_instances":null}`.
Jika Anda melakukan semuanya dengan benar, log Lemmy dari `journalctl -u lemmy` akan menampilkan "Starting http server at 127.0.0.1:8536". Anda juga bisa menjalankan `curl localhost:8536/api/v3/site` yang seharusnya mengembalikan respons yang berhasil , seperti `{"site_view":null,"admins":[],"banned":[],"online":0,"version":"unknown version","my_user":null,"federated_instances":null}`.
### Install lemmy-ui (web frontend)
### Pasang lemmy-ui (antarmuka web)
Install dependencies (nodejs and yarn in Ubuntu 20.04 repos are too old)
Pasang dependensi (nodejs dan yarn di repositori Ubuntu 20.04 terlalu tua)
```bash
# https://classic.yarnpkg.com/en/docs/install/#debian-stable
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
@ -75,21 +75,21 @@ curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install nodejs yarn
```
Clone the git repo, checkout the version you want (0.12.2 in this case), and compile it.
Klon repositori git, checkout versi yang Anda inginkan (dalam contoh ini adalah 0.12.2) dan susun itu.
```bash
mkdir /var/lib/lemmy-ui
cd /var/lib/lemmy-ui
chown lemmy:lemmy .
# dont compile as admin
# jangan susun sebagai admin
sudo -u lemmy bash
git clone https://github.com/LemmyNet/lemmy-ui.git --recursive .
git checkout 0.12.2 # replace with the version you want to install
git checkout 0.12.2 # ganti dengan versi yang ingin anda pasang
yarn install --pure-lockfile
yarn build:prod
exit
```
Add another systemd unit file, this time for lemmy-ui. You need to replace example.com with your actual domain. Put the file in `/etc/systemd/system/lemmy-ui.service`, then run `systemctl enable lemmy-ui` and `systemctl start lemmy-ui`.
Tambahkan berkas unit systemd yang lain, kali ini untuk lemmy-ui. Anda perlu mengganti example.com dengan domain Anda. Taruh berkas di `/etc/systemd/system/lemmy-ui.service`, kemudian jalankan `systemctl enable lemmy-ui` dan `systemctl start lemmy-ui`.
```
[Unit]
Description=Lemmy UI - Web frontend for Lemmy
@ -114,41 +114,41 @@ NoNewPrivileges=true
WantedBy=multi-user.target
```
If everything went right, the command `curl -I localhost:1234` should show `200 OK` at the top.
Jika semuanya benar, perintah `curl -I localhost:1234` seharusnya menampilkan `200 OK` di bagian atas.
### Configure reverse proxy and TLS
### Mengonfigurasi proksi-balik dan TLS
Install dependencies
Pasang dependensi
```bash
apt install nginx certbot python3-certbot-nginx
```
Request Let's Encrypt TLS certificate (just follow the instructions)
Minta sertifikat TLS Let's Encrypt (ikuti saja instruksinya)
```bash
certbot certonly --nginx
```
Let's Encrypt certificates should be renewed automatically, so add the line below to your crontab, by running `sudo crontab -e`. Replace example.com with your actual domain.
Sertifikat Let's Encrypt akan diperbarui secara otomatis, jadi tambahkan baris di bawah ini ke crontab Anda, dengan menjalankan `sudo crontab -e`. Ganti example.com dengan domain Anda.
```
@daily certbot certonly --nginx --cert-name example.com -d example.com --deploy-hook 'nginx -s reload'
```
Finally, add the nginx config. After downloading, you need to replace some variables in the file.
Akhirnya, tambahkan konfigurasi nginx. Setelah mengunduh, Anda perlu mengubah beberapa variabel di berkas.
```bash
curl https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/nginx.conf \
--output /etc/nginx/sites-enabled/lemmy.conf
# put your actual domain instead of example.com
# taruh domain anda alih-alih example.com
sed -i -e 's/{{domain}}/example.com/g' /etc/nginx/sites-enabled/lemmy.conf
sed -i -e 's/{{lemmy_port}}/8536/g' /etc/nginx/sites-enabled/lemmy.conf
sed -i -e 's/{{lemmy_ui_port}}/1234/g' /etc/nginx/sites-enabled/lemmy.conf
nginx -s reload
```
Now open your Lemmy domain in the browser, and it should show you a configuration screen. Use it to create the first admin user and the default community.
Sekarang buka domain Lemmy Anda di peramban, dan itu seharusnya menampilkan sebuah layar konfigurasi. Gunakan untuk membuat pengguna admin pertama dan komunitas baku.
### Pict-rs (for image hosting, optional)
### Pict-rs (untuk hos gambar, opsional)
Pict-rs requires a newer Rust version than the one available in Ubuntu 20.04 repos. So you need to install [Rustup](https://rustup.rs/) which installs the toolchain for you.
Pict-rs memerlukan Rust versi yang lebih baru dari yang tersedia di repositori Ubuntu 20.04. Jadi Anda perlu memasang [Rustup](https://rustup.rs/) yang akan memasang toolchain untuk Anda.
```bash
apt install ffmpeg exiftool libgexiv2-dev --no-install-recommends
@ -156,27 +156,27 @@ adduser pictrs --system --disabled-login --no-create-home --group
mkdir /var/lib/pictrs-source
cd /var/lib/pictrs
git clone https://git.asonix.dog/asonix/pict-rs.git .
# check docker-compose.yml for pict-rs version used by lemmy
# periksa docker-compose.yml untuk versi pict-rs yang digunakan oleh lemmy
# https://github.com/LemmyNet/lemmy-ansible/blob/main/templates/docker-compose.yml#L40
git checkout v0.2.6-r2
# or simply add the bin folder to your $PATH
# atau tinggal tambahkan folder bin ke $PATH anda
$HOME/.cargo/bin/cargo build --release
cp target/release/pict-rs /usr/bin/
# create folder to store image data
# buat folder untuk menyimpan data gambar
mkdir /var/lib/pictrs
chown pictrs:pictrs /var/lib/pictrs
```
Pict-rs requires the `magick` command which comes with Imagemagick version 7, but Ubuntu 20.04 only comes with Imagemagick 6. So you need to install that command manually, eg from the [official website](https://imagemagick.org/script/download.php#linux).
Pict-rs memerlukan perintah `magick` yang ada di ImageMagick versi 7, tapi Ubuntu 20.04 hanya ada ImageMagick 6. Jadi Anda harus memasangnya secara manual, seperti lewat [situs web resmi](https://imagemagick.org/script/download.php#linux).
```
wget https://download.imagemagick.org/ImageMagick/download/binaries/magick
# compare hash with the "message digest" on the official page linked above
# bandingkan hash dengan "message digest" di halaman resmi yang ditautkan di atas
sha256sum magick
mv magick /usr/bin/
chmod 755 /usr/bin/magick
```
Just like before, place the config below in `/etc/systemd/system/pictrs.service`, then run `systemctl enable pictrs` and `systemctl start pictrs`.
Seperti sebelumnya, letakkan konfigurasi di bawah ini ke `/etc/systemd/system/pictrs.service`, kemudian jalankan `systemctl enable pictrs` dan `systemctl start pictrs`.
```
[Unit]
Description=pict-rs - A simple image host
@ -193,16 +193,16 @@ Restart=on-failure
WantedBy=multi-user.target
```
If it is working correctly, `curl 127.0.0.1:8080` should output nothing (particularly no errors).
Jika berjalan dengan benar, `curl 127.0.0.1:8080` seharusnya tidak menampilkan apa-apa (terutama tidak ada galat).
Now add the line `pictrs_url: "http://127.0.0.1:8080"` to `/etc/lemmy/lemmy.hjson` so that Lemmy knows how to reach Pict-rs. Then restart Lemmy with `systemctl restart lemmy`, and image uploads should be working.
Sekarang tambahkan baris `pictrs_url: "http://127.0.0.1:8080"` ke `/etc/lemmy/lemmy.hjson` sehingga Lemmy mengetahui bagaimana menjangkau Pict-rs. Kemudian mulai ulang Lemmy dengan `systemctl restart lemmy` dan pengunggahan gambar seharusnya bisa bekerja.
## Upgrading
## Meningkatkan/Memperbarui
### Lemmy
```bash
# installs latest release, you can also specify one with --version
# pasang rilis terbaru, anda juga bisa menspesifikkannya dengan --version
cargo install lemmy_server --target-dir /usr/bin/
systemctl restart lemmy
```
@ -214,7 +214,7 @@ cd /var/lib/lemmy-ui
sudo -u lemmy
git checkout main
git pull --tags
git checkout 0.12.2 # replace with the version you want to install
git checkout 0.12.2 # ganti dengan versi yang ingin anda pasang
git submodule update
yarn install --pure-lockfile
yarn build:prod
@ -229,10 +229,10 @@ rustup update
cd /var/lib/pictrs-source
git checkout main
git pull --tags
# check docker-compose.yml for pict-rs version used by lemmy
# periksa docker-compose.yml untuk versi pict-rs yang digunakan oleh lemmy
# https://github.com/LemmyNet/lemmy-ansible/blob/main/templates/docker-compose.yml#L40
git checkout v0.2.6-r2
# or simply add the bin folder to your $PATH
# atau tinggal tambahkan folder bin ke $PATH anda
$HOME/.cargo/bin/cargo build --release
cp target/release/pict-rs /usr/bin/
systemctl restart pictrs

View file

@ -48,5 +48,5 @@ Ini *bukan* cara termurah untuk menjalankan Lemmy. Basis Data Aurora Tanpa Pelad
* `npm run watch` lacak perubahan dan susun
* `npm run test` laksanakan uji unit jest
* `cdk deploy` jalankan tumpukan (stack) ini ke akun/wilayah AWS baku Anda
* `cdk diff` bandingkan tumpukan yang jalan denga kondisi saat ini
* `cdk diff` bandingkan tumpukan yang jalan dengan kondisi saat ini
* `cdk synth` memancarkan templat CloudFormation yang disintesis

View file

@ -1,22 +1,22 @@
# Troubleshooting
# Penyelesaian Masalah
Different problems that can occur on a new instance, and how to solve them.
Berbagai masalah yang bisa terjadi di peladen baru dan bagaimana untuk menyelesaikan mereka.
Many Lemmy features depend on a correct reverse proxy configuration. Make sure yours is equivalent to our [nginx config](https://github.com/LemmyNet/lemmy/blob/main/ansible/templates/nginx.conf).
Banyak fitur Lemmy bergantung pada konfigurasi proksi-balik yang benar. Pastikan yang Anda sama dengan [konfigurasi nginx](https://github.com/LemmyNet/lemmy/blob/main/ansible/templates/nginx.conf) kami.
## General
## Umum
### Logs
### Log
For frontend issues, check the [browser console](https://webmasters.stackexchange.com/a/77337) for any error messages.
Untuk masalah antarmuka, periksa [konsol peramban](https://webmasters.stackexchange.com/a/77337) untuk pesan galat apa pun.
For server logs, run `docker-compose logs -f lemmy` in your installation folder. You can also do `docker-compose logs -f lemmy lemmy-ui pictrs` to get logs from different services.
Untuk log peladen, jalankan `docker-compose logs -f lemmy` di folder pemasangan Anda. Anda juga bisa menjalankan `docker-compose logs -f lemmy lemmy-ui pictrs` untuk mendapatkan log dari layanan yang berbeda.
If that doesn't give enough info, try changing the line `RUST_LOG=error` in `docker-compose.yml` to `RUST_LOG=info` or `RUST_LOG=verbose`, then do `docker-compose restart lemmy`.
Jika itu tidak memberikan informasi yang cukup, coba ubah baris `RUST_LOG=error` di `docker-compose.yml` ke `RUST_LOG=info` atau `RUST_LOG=verbose`, kemudian jalankan `docker-compose restart lemmy`.
### Creating admin user doesn't work
### Membuat pengguna admin tidak bekerja
Make sure that websocket is working correctly, by checking the browser console for errors. In nginx, the following headers are important for this:
Pastikan bahwa websocket bekerja dengan benar, dengan memeriksa konsol peramban untuk galat. Di nginx, tajuk berikut penting untuk ini:
```
proxy_http_version 1.1;
@ -24,9 +24,9 @@ proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
```
### Rate limit error when many users access the site
### Membatasi galat ketika banyak pengguna mengakses situs
Check that the headers `X-Real-IP` and `X-Forwarded-For` are sent to Lemmy by the reverse proxy. Otherwise, it will count all actions towards the rate limit of the reverse proxy's IP. In nginx it should look like this:
Periksa bahwa tajuk `X-Real-IP` dan `X-Forwarded-For` dikirim ke Lemmy oleh proksi-balik. Kalau tidak, itu akan menghitung semua tindakan terhadap batas dari proksi-balik IP. Di nginx, itu seharusnya tertampil sebagai:
```
proxy_set_header X-Real-IP $remote_addr;
@ -34,11 +34,11 @@ proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
```
## Federation
## Federasi
### Other instances can't fetch local objects (community, post, etc)
### Peladen lain tidak bisa mengambil konten lokal (komunitas, pos, dll.)
Your reverse proxy (eg nginx) needs to forward requests with header `Accept: application/activity+json` to the backend. This is handled by the following lines:
Proksi-balik Anda (mis. nginx) perlu meneruskan permintaan dengan tajuk `Accept: application/activity+json` ke bagian-belakang. Itu ditangani oleh baris berikut:
```
set $proxpass "http://0.0.0.0:{{ lemmy_ui_port }}";
if ($http_accept = "application/activity+json") {
@ -50,15 +50,15 @@ set $proxpass "http://0.0.0.0:{{ lemmy_port }}";
proxy_pass $proxpass;
```
You can test that it works correctly by running the following commands, all of them should return valid JSON:
Anda bisa memeriksa bahwa itu bekerja dengan benar dengan menjalankan perintah berikut, semuanya seharusnya mengembalikan JSON yang valid:
```
curl -H "Accept: application/activity+json" https://your-instance.com/u/some-local-user
curl -H "Accept: application/activity+json" https://your-instance.com/c/some-local-community
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # the id of a local post
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # the id of a local comment
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # id dari sebuah pos lokal
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # id dari sebuah komentar lokal
```
### Fetching remote objects works, but posting/commenting in remote communities fails
### Mengambil konten jarak jauh bekerja, tapi mengepos/berkomentar di komunitas jarak jauh gagal
Check that [federation is allowed on both instances](../federation/administration.md#instance-allowlist-and-blocklist).
Periksa bahwa [federasi dibolehkan pada kedua belah peladen](../federation/administration.md#instance-allowlist-and-blocklist).
Also ensure that the time is accurately set on your server. Activities are signed with a timestamp, and will be discarded if it is off by more than 10 seconds.
Juga pastikan bahwa waktu di peladen Anda sudah akurat. Aktifitas ditandai dengan waktu dan akan dihapus jika meleset lebih dari 10 detik.

View file

@ -45,7 +45,7 @@ sudo docker-compose up -d
## Model Keamanan
- Verifikasi tanda digital HTTP : Ini menjamin bahwa aktifitas memang datang dari aktifitas yang diklaim
- check_is_apub_valid : Memastikan bahwa itu ada di daftar peladen yang diperbolehkan Makes sure its in our allowed instances list
- check_is_apub_valid : Memastikan bahwa itu ada di daftar peladen yang diperbolehkan
- Pemeriksaan tingkat rendah : Untuk memastikan bahwa pengguna bisa membuat/memperbarui/menghapus pos di peladen yang sama dengan pos tersebut
Untuk poin terakhir, harap dicatat bahwa kita *tidak* memeriksa apakah aktor yang mengirimkan aktifitas membuat sebuah pos sebenarnya sama dengan pembuat pos, atau pengguna yang menghapus pos merupakan moderator/admin. Hal tersebut diperiksa oleh kode API, dan merupakan tanggung jawab setiap peladen untuk memeriksa izin pengguna. Ini tidak meninggalkan vektor serangan apa pun, karena sebagai pengguna peladen normal tidak bisa melakukan aksi yang melanggar peraturan API. Satu-satunya yang bisa melakukannya adalah admin (dan perangkat lunak yang digunakan oleh admin). Tapi admin bisa melakukan apa pun di peladen, termasuk mengirim aktifitas dari akun pengguna lainnya. Jadi kita tidak akan mendapatkan keamanan apa pun dengan memeriksa izin mod dan serupa.

View file

@ -1,7 +1,7 @@
# Federation Overview
# Tinjauan Federasi
This document is for anyone who wants to know how Lemmy federation works, without being overly technical. It is meant provide a high-level overview of ActivityPub federation in Lemmy. If you are implementing ActivityPub yourself and want to be compatible with Lemmy, read our [ActivityPub API outline](contributing_apub_api_outline.md).
Dokumen ini untuk siapa saja yang ingin mengetahui bagaimana federasi Lemmy bekerja, tanpa terlalu teknis. Ini dimaksudkan untuk memberikan tinjauan umum tingkat tinggi terhadap federasi ActivityPub di Lemmy. Jika Anda mengimplementasikan ActivityPub sendiri dan ingin kompatibel dengan Lemmy, baca [Garis Besar API ActivityPub](contributing_apub_api_outline.md) kami.
## Documentation conventions