eef87a4e21e60287a7df277fa4712c69b155ac49 — Matthew Jorgensen 7 months ago da69a79
Wrote new post "Pleroma: admin-fe"
1 files changed, 115 insertions(+), 0 deletions(-)

A _posts/2019-10-11-Pleroma-admin-fe.md
A _posts/2019-10-11-Pleroma-admin-fe.md => _posts/2019-10-11-Pleroma-admin-fe.md +115 -0
@@ 0,0 1,115 @@
layout: post
title: "Pleroma: admin-fe"

I recently switched from Mastodon to Pleroma, for no real reason in
specific other than: Pleroma is far less resource intensive.
Setting up Pleroma was a breeze compared to setting up Mastodon--I
remember having a great deal of trouble. I enjoy the simpler
interface as well. While Pleroma doesn't have *all* of the flashy
features[^1] mastodon does, I don't need or use them anyway.

Tonight I came across [admin-fe][admin-fe] for Pleroma, and thought I'd
give it a shot even though I'm the only use on my instance. Installation
documentation is lacking for the project, so I thought I'd offer my
notes in case they could be useful to anyone else.


I downloaded the latest version of admin-fe[^2] and unarchived the

curl -O https://git.pleroma.social/pleroma/admin-fe/-/archive/1.2.0/admin-fe-1.2.0.tar.gz
tar xzvf admin-fe-1.2.0.tar.gz

Entered the directory and attempted to run `yarn build:prod` per the

cd admin-fe-1.2.0
yarn build:prod

I was greeted with a somewhat unhelpful error:

> Yarn requires Node.js 4.0 or higher to be installed.

So I looked Node.js up, I remember it takes more to install than `sudo
apt install nodejs`. I saw the latest version was 12, which I found odd
considering Pleroma's fairly new on the block.

After installing Node.js, `yarn build:prod` still wasn't successful:

$ yarn build:prod
yarn run v1.17.3
$ cross-env NODE_ENV=production env_config=prod node build/build.js
/bin/sh: 1: cross-env: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Which I solved simply by running `yarn` with no arguments. Finally,
`yarn build:prod` was successful and I had a built distribution of

Serving admin-fe was a little bit of a hassle, mostly due to my limited
knowledge of nginx configuration. At first, my config looked like this:

location /_aadmin-fe/ {
	root /var/www/pleroma/admin-fe;
	index index.html

Which was failing with an HTTP 404. Requests to example.com/_afe were
trying to be served from `/var/www/pleroma/admin-fe/_afe/`. I needed to
switch the `root` directive for the `alias` directive, add a trailing
slash and I was in business. 

**Note:** I tried to pick a URL that *probably* wouldn't become a
username. There was no hint towards what to call it in the limited
documentation--not that it really matters on an instance on 1 anyway.

The ending result is my `location` block ended up reading this:

location /_admin-fe/ {
	alias /var/www/pleroma/admin-fe/;
	index index.html;

Now the login page loads, is on the right domain[^3], *and* it
successfully authenticates against my Pleroma database.

Unfortunately, admin-fe seems to have a lot of trouble on my instance
and I'm sure it's due to the way I configured Pleroma. I can't find any
documentation on it, but I vaguely remember choosing something along the
lines of "Don't allow site configuration changes from the frontend."
Thus, my adventures setting up admin-fe have come to an end.

After reaching out on #pleroma on freenode, it's a big possibility that
admin-fe doesn't work for me because the necessary pieces aren't
implemented on the backend. 

If you think you can help, please don't hesitate to find me on the
fediverse or write to my [public-inbox][lists].

[admin-fe]: https://git.pleroma.social/pleroma/admin-fe
[lists]: https://lists.sr.ht/~mjorgensen/public-inbox

[^1]: Mastodon 3.0 came out today, some of their new features include:
	moving accounts, audio in toots, and hashtag auto-suggestions.

[^2]: 1.2.0 at the time of writing

[^3]: At first I thought about hosting admin-fe at something like
	`admin.example.com`, but that didn't work because now admin-fe would
	try to load the Pleroma API at `admin.example.com/api/...` instead
	of `example.com/api/...`.
\ No newline at end of file