Closed arschles closed 6 years ago
I have asked myself the same question when I looked at Hugo. I found the thread http://discuss.gohugo.io/t/deployment-workflow/90 which can be relevant. I was surprised to see deployment isn't built in Hugo, because I found relevant commands or plugins in tools like Hexo for example. Support for FTP seems important, among other things: cheap / free hosts doesn't support SSH or RSync, etc.
I was surprised to see deployment isn't built in Hugo
I'm surprised by your surprise.
It would be nice if Hugo had some support in this department -- but I also believe in the Unix mindset: Do one thing and to it good! There are lots of tools doing deployment very well, and probably a better job than Hugo would ever do. Hugo's deployment story may even be slightly better than some of the others; the simple static binary means that doing automated deployment with Docker, Wercker et. al. is fairly straight forward.
Well, sure RSync and such are nice, but as said we are sometime stuck with FTP. If the deployment was built in the tool, since it knows which files has changed (it does? Hugo does incremental builds or rebuilds everything every time?), it would be able to upload only the needed files.
it would be able to upload only the needed files.
No, Hugo builds everything -- there are no incremental builds.
OK, I suppose it is fast enough to allow this... And then, the smart deployment idea falls apart, making the need for an automation less compelling, indeed. Thanks.
What kind of use case scenario are you looking at for deployment?
There are tons of blog articles for hugo that may help you further.
On Fri, Nov 6, 2015 at 3:26 PM, Philippe Lhoste notifications@github.com wrote:
OK, I suppose it is fast enough to allow this... And then, the smart deployment idea falls apart, making the need for an automation less compelling, indeed. Thanks.
— Reply to this email directly or view it on GitHub https://github.com/spf13/hugo/issues/1543#issuecomment-154333415.
I'm thinking of uploading the public
folder to s3 or google cloud storage. right now, I upload to gcs using the standard gsutil tool and that's all fine - no real complaints there. I'm more curious at this point if deployment is something that the core contributors have considered / are interested in
Hi all - I just wrote a simple ftp deployment tool https://github.com/mindok/hugodeploy. It keeps a local copy of what has been deployed already and does a binary compare of hugo generated files with this local copy in order to avoid resending unchanged content (images, js etc). The paint is still drying on it (it's less than a week since coding began) and there are a couple of minor issues to tidy up (e.g. setting ftp directory to deploy to - see issues), but hopefully it works for the scenario @PhiLhoSoft refers to.
There's a little bit of work to have alternate deployment targets as per @arschles request but it is architected to allow this. It's designed to minimise transfer times - those of us not based in the US do have to consider this...
Any suggestions welcome.
@mindok Well done! I moved to Hexo, not (only) for deployment but (mostly) because I needed a more flexible Markdown parser (accepting newline as br mark). And because I can hack JS, not Go. But it is still good to see new tools added to interesting frameworks.
For Digital Ocean, they have https://godoc.org/github.com/digitalocean/godo, which (from my understanding of the API), allows you to interact with your droplets/etc using this package. Could definitely be useful for Hugo deploys to DO.
How about a hugo deploy
command that simply executes deploy.sh
in the project's root directory if the file exists?
@elidourado, that's what shells are for. :-1:
Right now I use s3up, a tool I wrote that fetches md5 hashes from s3 and updates/deletes any necessary files. I run it from CI using configs in hugo-deploy.
IMO, using an object store and CDN like S3+CloudFront or GCS is the simplest and least likely to go down. It's not what everyone wants, but a good default for the less technical.
Whether integrated, a plugin (separate process), or a sanctioned standalone tool, I quite like the idea of providing some de facto standard deployment options.
This issue has been automatically marked as stale because it has not been commented on for at least six months.
The resources of the Hugo team are limited, and so we are asking for your help.
If this is a bug and you can still reproduce this error on the master
branch, please reply with all of the information you have about it in order to keep the issue open.
If this is a feature request, and you feel that it is still relevant and valuable, please tell us why.
This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
I wrote this little script because I couldn't find a good solution. Not ideal because it uses ssh and sftp, but it does the trick well: http://blog.codeimpaler.com/2019/07/publish-hugo-blog-ftp-windows-batch-file.html
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Wondering if there's something like a
hugo deploy
command that can generate and deploy a site to somewhere (Amazon S3, Heroku, Google Cloud Storage, ....)?If not, I'd like to propose one. I'm happy to write a more complete proposal and start/contribute to the effort.
Looking forward to hearing back.