The following command fails as a result of some minor version incompatibilities:
cargo install lemmy_server --target-dir /usr/bin/ --locked --features embed-pictrs
Removing --locked seems to work, but it fails compiling later in the process with the following output:
Compiling diesel-async v0.1.1
error[E0405]: cannot find trait RowGatWorkaround in module diesel::row
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/diesel-async-0.1.1/src/pg/row.rs:16:23
|
16 | impl<'a> diesel::row::RowGatWorkaround<'a, diesel::pg::Pg> for PgRow {
| ^^^^^^^^^^^^^^^^ not found in diesel::row
error[E0405]: cannot find trait RowGatWorkaround in module diesel::row
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/diesel-async-0.1.1/src/pg/row.rs:30:39
|
30 | ...diesel::row::RowGatWorkaround<'b, diesel::pg::Pg>>::Field>
| ^^^^^^^^^^^^^^^^ not found in diesel::row
For more information about this error, try rustc --explain E0405.
error: could not compile diesel-async (lib) due to 2 previous errors
error: failed to compile lemmy_server v0.17.4, intermediate artifacts can be found at /usr/bin/
I gave that a try but actually ran into a problem with that too. I setup Mastodon on the same server earlier and was planning to use Nginx server blocks to send traffic for mastodon.fdr8.us and lemmy.fdr8.us to the appropriate destination, but the script failed when it tried to bind all traffic on port 443 and Mastodon is already listening on port 443. I had hoped for both to listen on port 443. This is actually somewhat unfamiliar territory for me as usually I am working with Apache and virtual hosts, but I'm hopeful I can make it work. I am very familiar with Apache virtual hosts and have worked with them extensively. I hope I wasn't crazy to assume I could run Lemmy and Mastodon on the same server on Nginx in a similar fashion.
Thanks for the advice. I'm old school and never use Docker, but maybe it's time I get over that. I'm actually out of my element anyway in that I do a lot of self-hosting but up to this point it has almost all used Apache and MySQL rather than Nginx and Postgres. Hopefully someone will come along with a solution for the diesel-async compiling error while I'm at work for the next few hours, but if not I'll give your suggestion a shot this evening.
You'll have to do some reading, but here's some (almost) turnkey repos for all the pieces you need to host Lemmy (and other things) in docker.
I use Traefik instead of nginx to do load balancing / edge routing / reverse proxy / SSL termination (and automatic generation via LetsEncrypt - it's proven to be bulletproof in a good few production setups.