I feel like I need a power users walkthrough of Kagi to shows it's value, I just can't get it up for it at the moment. I barely even use Google these days and just ask GPT :-D
Author here - isn't it just. I believe there's a lot of organizations whose IT infrastructure has been set up a couple of decades ago and then barely maintained due to non-existing resources.
So while this is absolutely ancient tech and process by most means, it has been a huge step up from copying files over to machines by hand through RDP connections.
And also, our apps have no problems having even a few minutes' downtime, so cold restarts are absolutely fine for us.
While I would absolutely like to get into containerized zero downtime deployments, from where we're actually standing now, those don't seem to be offer much in the way of ROI.
And please, if anyone has a more suitable process in mind, please let me know!
Probably the only improvements I can think is running the runner as a gMSA and applying the relevant ACL's to that, so you can avoid needing to supply creds.
Otherwise, on our fleet of hundreds of IIS, we've had success just pointing IIS to a hardlink, deploying the new version to a new folder and updating the hardlink - from memory this does trigger an app pool restart but its super fast, lets you go back and forth very easily.
What do you think kubernetes does? A container is literally just a tar.gz containing an executable file (among a great number of other files) that is executed with some kernel configuration and then later killed to make room for a new one.
To be honest it’s quite refreshing if your company is full-on Microsoft anyway. It has some limitations and drawbacks you will miss compared to a modern container environment. For the usual in-house/b2b business app in dotnet it’s totally fine. With powershell DSC you can do declarative setup of Windows Server and IIS to limit the „click ops“.
Arguably, IIS is more advanced than typical Linux hosting services, where the standard for decades has been "stop and restart the service" for configuration changes, causing a temporary outage. I'm sure that's improved over time (has it?), but IIS had continuous operation modes since at least the year 2000. Historically my experience with Linux web deployment has also been "copy in a bunch of files", so I don't see how it's any better or worse! (Docker support is available for both as well.)
Some random IIS capabilities include:
- You can edit any part of the IIS configuration live, and this won't require a service restart. You can even edit .NET application code and configuration files live, and changes can take effect non-disruptively even if a process restart is required for the virtual app. IIS will buffer requests and overlap the new process with the old one. https://learn.microsoft.com/en-us/previous-versions/iis/6.0-...
- Web Deploy is basically just a zip file of a web application that can be produced by Visual Studio, vaguely similar to packaging up a site and its config with Docker: https://www.iis.net/downloads/microsoft/web-deploy
- The volume shadow service can be utilised by IIS to create backups of its entire configuration including all files on a schedule: https://usavps.com/blog/13597/
- Shared configuration allows scale-out web farms to be created. The key IIS config files and web content are moved to a UNC file share and then the workers just "point" at this. With an external load balancer that supports traffic draining this allows for seamless OS reboots, upgrades, etc... There's even a trick where SMB Caching is used to automatically and transparently create a local disk cache of the shared content, allowing IOPS to scale with web farm server instances without any manual deploy or sync operations. https://learn.microsoft.com/en-us/iis/web-hosting/configurin...
If you want to use container technology on Windows for web apps, you can do that too. Windows Server supports Windows Containers, and ASP.NET Core has excellent support with a whole bunch of pre-prepared base container images for both Windows and Linux hosts.
If you have many such sites on a Windows web host, you would use the IIS Application Request Routing reverse proxy to add HTTPS to back-end containers running on HTTP. That, or just use Azure App Service, or YARP, or...
Also, with all this power came a ton of interfaces, poorly defined and very hard to automate at times. Not to mention, they didn't always play nice with each other.
In any case, it doesn't matter now, Windows Server is on maintenance mode and Microsoft is clearly done except for cashing licensing checks. Linux is the (web) server future.
Unix got it right, text config, sighup the processes to pick up any config changes and away you go. Requires more work from Admins, much cleaner in the long run.
There is Windows Containers, we run a few at work. They are nightmare and large but if want, they exist. Windows 2022 container is 5.56GB for .Net app, Linux equivalent is 336MB.
Can't wait to jump on Ghostty on Linux, once they introduce a feature to save my tab/splits layout or put it in a conf file to load, like a terminator profile.
Dragons to the point of being impossible. Self hosting your outgoing mail means it will almost surely never reach the recipient due to reputation issues. You can, however, set up a respected email provider with your own domain (meaning that, in particular, you can switch providers easily). I have done this myself, using ForwardEmail as the provider.
Having said that, you can self host only calendars and contact, this is nowhere as complicated and maintenance intensive as emails. Or use one of the many nextcloud providers available, the free tier is usually enough for that.
Have they included real profiles in the screenshots of the "Discover profiles" menu and the list of likes? If so that's pretty irresponsible even with the faces obscured.
I've got an open ai API key, and I pay for chatgpt. I'd imagine switching to this and using openai would end up costing quite a lot? How are people running it relatively cheaply?
One way people keep costs down when using OpenAI with an offline RAG system is by limiting the number of text snippets sent to the API. Instead of sending the whole database, they'll typically retrieve only the top 10 (or so) most relevant snippets from the vector database and just send those to OpenAI for processing. This significantly reduces the amount of data being processed and billed by OpenAI.
Openrouter... you get all the models and its not as expensive as you would think. I spent $3 with aider the other day in like the blink of an eye with Anthropic. I am working on a FASTHTML thingy and loaded all the docs, plus a few huge replicate api files into the vector database. Most of my back and forth usage averaged about $0.02 for each turn with Claude 3.5 Sonnet. To give you an idea: My context + prompt were around 18000 tokens with completions around 1500 tokens.
reply