Jump to content
funtoo forums

Blogs

Our community blogs

    • 1
      entry
    • 0
      comments
    • 3993
      views

    Recent Entries

    When I got a Funtoo container, the first thing I wanted to do with it, was host a website. I'm new at this, so I looked up numerous tutorials, but none of them were specific to Funtoo, so I thought I'd write my own, for future reference and for the benefit of other new Funtoo users. It's a pretty basic setup, but I welcome any suggestions as to how it can be expanded or improved. Here are all the steps that I have gone through in setting up my web server.

     

    First, install nginx by typing:

     

    # emerge nginx

     

    The configuration file for Nginx is located at "/etc/nginx/nginx.conf". I found that the default configuration in Funtoo worked just fine, so I moved straight on to configuring the server. If you have your own domain name, you can configure your DNS to point that address at your Funtoo container, but the Funtoo container has a default address of "(name).host.funtoo.org", so that is the address that I will use for the rest of this tutorial. You can set up a server for that address by typing:

     

    # nano /etc/nginx/sites-enabled/(name).host.funtoo.org

     

    And adding this to the file:

    >server {        listen 80;        server_name (name).host.funtoo.org;        root /var/www/(name).host.funtoo.org/;        location / {                index index.html index.htm;        }}

    Then create the server root directory:

     

    # mkdir /var/www/(name).host.funtoo.org

     

    And add a simple test page:

     

    # nano /var/www/(name).host.funtoo.org/index.html

     

    Start the nginx service by typing:

     

    # /etc/init.d/nginx start

     

    Now the index page should be accessible from any web browser by typing "(name).host.funtoo.org" into the address bar. That's all it takes to host web sites on a Funtoo container, but I want my websites accessible through https, rather than http, I need certificates to verify my site's identity. You can get a free certificate from LetsEncrypt using a program called Certbot.

     

    Install certbot by typing:

     

    # emerge certbot

     

    And use it by typing:

     

    # certbot certonly --webroot -w /var/www/(name).host.funtoo.org -d (name).host.funtoo.org

     

    Now there should be certificates for the website located at /etc/letsencrypt/live/(name).host.funtoo.org/

    Next, to reconfigure the server to redirect visitors to ssl, type:

     

    # nano /etc/nginx/sites-enabled/(name).host.funtoo.org

     

    And change the file's contents to this:

    >server {        listen 80;        server_name (name).host.funtoo.org;        return 301 https://$host$request_uri;}server {        listen 443 ssl;        server_name (name).host.funtoo.org;        root /var/www/(name).host.funtoo.org/;        ssl_certificate /etc/letsencrypt/live/(name).host.funtoo.org/fullchain.pem;        ssl_certificate_key /etc/letsencrypt/live/(name).host.funtoo.org/privkey.pem;        location / {                index index.html index.htm;        }}

    Restart Nginx by typing:

     

    # /etc/init.d/nginx restart

     

    And the web site can now be accessed securely through ssl.

     

    One thing that I found, was that when I have multiple domain names pointing at my server, if I don't have entries set up for them in Nginx, it has the default behavior of redirecting requests for unspecified domain names to the first available server. I'd rather not have this happen, so I edited the Nginx configuration file:

     

    # nano /etc/nginx/nginx.conf

     

    And just above the line that says "include /etc/nginx/sites-enabled/*;" I added this:

    >server {        server_name _;        listen *:80 default_server deferred;        return 444;}

    This makes it so that all defaulted requests return no response.

     

    That's all that I've done to set up my web server so far. If you're a beginner like me, I hope you find it helpful, and if you're more advanced than me, any advice you can offer will be greatly appreciated

     

    If anybody has any questions or suggestions, write a comment or send me a message. All requests for clarification, correction, expansion, and improvement are welcome, and I'll edit and add to this tutorial as necessary.

  1. Well, I wanted to play with VirtualBox on Funtoo again.

    Setup metro to create a custom stage3, added my stuff I use.

    All went well, chrooted into the new install, did all the normal setup stuff.

     

    Rebooted into the new install. all was fine in the world.

    Adjusted my VM's to use VirtualBox, and even finally got OS X to work right virtualised.

     

    Then the bullshit. How the fuck do you autostart vm's on boot.

    Went down the google rabbit hole, all the info was based on other Distros or outdated info.

    Fuck!!!!

     

    So I did what any self respecting person would do. I built a rc startup script.

    Well (4) actually.

     

    So here they are.

    1) vbox.example - this is the /etc/conf.d file - set options there. rename file to the name of the service - vbox.myvm

    2) vbox.tmpl - this is the rc script that goes in to /etc/init.d, then create symbolic link to the vm name, use like netif.tmpl

    # ln -s /etc/init.d/vbox.tmpl /etc/init.d/vbox.myvm

    3) vboxd.start - goes into the /etc/vboxd dir - starts the vm. The correct vm config is passed to the script by init script

    4) vboxd.stop - goes into the /etc/vboxd dir - stops the vm. The correct vm config is passed to the script by init script

     

    And that's it.

    I can run as any user, VirtualBox segments the available vm's according to user, so a VM under ckurlinski will not show up under root.

    Nice for some things, suck for writing a init script.

     

    All VM's will run under created user, and can be set to start / stop with different parameters: headless , saved state.

    Sends info to dmesg also.

     

    The last thing I would like to do is create a portage package.... Not even sure where to start on that .....

    Thanks for sharing.

  2. If you use a content management system for your site, it probably already deals with mobile systems. But, what if you have parts of your site that aren't in a CMS, or you do your site by hand?

     

    Well, it would be nice to either redirect from www.example.com to m.example.com, or (my preference), to redirect to a subdirectory. I like the subdirectory approach because I can easily share content with the main site via symlinks (such as the content management system). Normally, this isn't a nice thing to do to your caches since any caches along the way won't know that the symlinked files aren't the same, but if you can solve that, let me know.

     

    The following method redirects the user if they are on a mobile browser, but still allows them to use the "Request Desktop Site" feature. Just include the file in your tengine or nginx server configuration. The actual rewrite is done at the end. Scroll to the bottom and you'll see the line to edit. I tried to attach the file, but it said I'm not permitted to upload files of that type. Cut-Paste or email me and I'll send it to you.

    >#- This file for doing redirects based on mobile detectionset $mobile_rewrite do_not_perform;#- chi http_user_agent for mobile / smart phonesif ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino") {set $mobile_rewrite perform;}if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)") {set $mobile_rewrite perform;}set $force_dt_cookie "";if ($args ~ 'desktop=true') {set $mobile_rewrite do_not_perform;set $force_dt_cookie "desktop=true";}add_header Set-Cookie $force_dt_cookie;if ($http_cookie ~ 'desktop=true') {set $mobile_rewrite do_not_perform;}location /m {error_page 404 /m/error/404.html;}#- redirect to /m except /m, /mail, /joomlaif ($mobile_rewrite = perform ) {rewrite ^(?!(/m|/joomla)+) /m$request_uri? break;break;}#- To redirect to m.example.com, change above rewrite to# rewrite ^ https://m.example.com$request_uri? break;

    That's it! I just put my mobile files in the /m directory of the server.

  3. 666threesixes666
    Latest Entry

    drobbins demands faqs so yer gonna get em...

     

    embedding images results in thumbnails, they're forever hosted at funtoo untill drobbins decided to nuke the website.

     

    to make large image postings, navigate to the tools above the post entry form and to the left of <> is an image to feed external (or internal) urls to.

     

    post-2-0-47306700-1414603385_thumb.gif

     

    in the "my media" button you can attach garbage to posts, such as your blog entries or images you've posted.... like my "punch babies" or "dead larry"

     

    post-2-0-52051100-1407639063_thumb.png

    "the raven" -never more

     

    above is a quote box to the right of <> to get past the quote box, press enter a few times....

     

    <> is code... it pops up a window to enter code, to get past it again press enter a few times.

    ><h1><b>hello</b>world</h1>

    twitter just links a twitter link. @6three6sixes6

     

    to the left of font is special bb code. you can enter acronyms twitters and some others. they give hover dialog, mouse over the below word to see it in action.

     

    shart

     

    below the post is attachment stuff.... attach files to show up in my media for future postings.

     

    to change forum entry titles, ie from "my funtoo's borked" to "[solved]my funtoo's borked" go to "full editor mode" instead of quick edit mode.

     

    bam that's the faq jack

    • 1
      entry
    • 0
      comments
    • 23228
      views

    Recent Entries

    daixtr
    Latest Entry

    Gentoo was my first linux try that made sense. The source code is there, the compiler is there. And everything makes sense. There are difficulties along the way, but because the system made sense, it is always a worthwhile goal to overcome these difficulties. Maybe, Gentoo is a more coherent system. And now, that Funtoo is here, i will definitely give it a try.

    • 1
      entry
    • 2
      comments
    • 29841
      views

    Recent Entries

    haxmeister
    Latest Entry

    This blog is up and functional!

    • 1
      entry
    • 1
      comment
    • 36488
      views

    Recent Entries

    Andrew Hobden
    Latest Entry

    Look mom, it works!

    • 1
      entry
    • 3
      comments
    • 39760
      views

    Recent Entries

    drobbins
    Latest Entry

    Okay, this is a test blog post. Blargy blar blar.

    • 1
      entry
    • 0
      comments
    • 7688
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 24410
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 622
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 3140
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 11402
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 448
      views

    No blog entries yet

×