I need help, noob wants to setup caddy on Mac for emby

Im sorry in advance for this :slight_smile:

1. Caddy version (caddy version):

2.4.5

2. How I run Caddy:

I don’t yet, as I don’t really understand it

a. System environment:

macos catalina 10.15.7

b. Command:

I dont know yet

c. Service/unit/compose file:

NA

d. My complete Caddyfile or JSON config:

haven’t got to this stage

3. The problem I’m having:

I might be too dumb for this, but im usually fairly good at working things out.
I have downloaded caddy 2.4.5 from Github, im not sure if it’s a webserver or one that runs from my mac, but im not sure what to do, any tutorials I read are way past my knowledge. I was hoping it would be a few simple steps to get this working. I have a dynamic DNS through Draytek, I think I have port forwarded the correct ports, but just don’t know how to get this part going. I like the idea of auto SSL updating.

4. Error messages and/or full log output:

NA

5. What I already tried:

Just a lot of googling for an idiots guide that I understand

6. Links to relevant resources:

NA

I think this article should answer most of your questions:

1 Like

I read the article, but I think this is too hard for me, I don’t know how to use command lines well, is there a simple way that is more GUI? I downloaded from GitHub and I have a unix executable in my download folder. Im sorry for this.

I would just Google how to use a command line. I’m not sure what else to tell you.

I can do basic commands, but google just finds me tutorials for windows or linux, nothing dedicated to macOS unfortunatley, I think half my problem in having it installed. I saw webi as an install, but ive downloaded the unix executable. its the next step im not sure, getting it running.

Yeah, webi is cool. (@coolaj86)

The installer page has all you need to know: Caddy | webinstall.dev

when I double click the unix executable< terminal opens, but none of the commands listed are recognised.
if I use webi, will the executable still be needed?

Here’s a tutorial I made on how to use caddy with digital ocean and duckdns, walking through each step - but it’s geared towards someone who wants to become a web developer.

If you want to run it from your own network, you can do that too, but I’d recommend you start out with something that’s easy - like Digital Ocean - to get familiar with running a web server - and then use DuckDNS for Dynamic DNS because it’s easier to use than most other solutions, and there’s a plugin for caddy for it - which you probably won’t need, but is handy if you do.

2 Likes

Also, you don’t need macOS specific tutorials - it’s just Unix, like Linux.

The one thing that is particularly different is the system service manager, but you can use Serviceman | webinstall.dev and just omit the sudo and --system bits. I think that’s explained in the Mac section.

2 Likes

thanks coolaj86
with the system service manager, does that mean if I restart my Mac, Caddy will automatically startup, or will I need to enter commands each time? Im trying to make this as simple as possible and set and forget as much as possible. I just want something to serve my emby content to my Mother or to use when I am away from the house.
I really appreciate everyones help

Hey @brabs,

As a Mac user myself, my personal recommendation is to install Caddy via Homebrew.

I install a lot of other useful software via Homebrew, and while it’s got its quirks (Lord help you if you don’t update anything in a while and then try to download one piece of software…), it’s a massively widely adopted “package manager” platform for macOS.

If you’re interested, you can find installation instructions here: https://brew.sh/ (it’s a one-liner copy paste into your macOS Terminal to install it).

The primary reason I recommend doing this with Homebrew is twofold:

Firstly, it handles basically everything for you, like any other common Linux package manager would. You type brew install caddy and voilà, Caddy is installed and available in your path.

Secondly, it comes with an integrated service manager. (Or, more accurately, it configures the built-in macOS launchd for you.) That means that after you brew install caddy, you can nano /etc/Caddyfile, write your configuration, and then brew services start caddy, and then you’re done - Caddy is now running automatically in the background, managed by macOS.

2 Likes

Thanks for that Whitestrake, Im giving brew a go, Ive got to the point with the caddyfile part.
for a emby server what would the recommended caddyfile be.
would it be something like this I found on the internet?

my domain
reverse_proxy http://192.168.1.XX:port#

not sure if should be typed exactly like that (obviously changing domain and the IP address)
there are these little {. not sure where to put them though.
would you be able to show me what I should paste in?
Then how do I save it, once ive pasted it?
cheers and thanks so much

OK I think I have the caddy file correct, But can’t work out how to save it in nano.
I did ctrl X, then Y, then im not sure what to do, it says
File Name to write: /etc/Caddyfile
but not sure what to press now. There is ctrl T but not sure where to save
Thanks again, but I think im close to getting it

Yep, something like what you found.

I’m not sure if there’s a recommended Caddyfile specifically for Emby - with Caddy it’s almost always as simple and generic as that two-liner. The name of the site you want to serve; and a reverse proxy to the local service.

When you get to the line:

You just need to hit the Enter key to confirm that location.

when I hit enter I get this
[ Error writing /etc/Caddyfile: Permission denied ]

homebrew Caddy

brew install caddy

Caddyfile in /usr/local/etc/Caddyfile

hi again, ive managed to save the caddy file, but can’t connect to my server. my 443 and 80 ports are showing as closed, even though I have port forward them. my sSP apparently doesn’t block any ports, bit I may need to call to double check. is there anything else in the caddy config that would prevent the ports being closed?
cheers

This topic was automatically closed after 30 days. New replies are no longer allowed.